![]() |
#13 |
Участник
|
Цитата:
![]() X++: info(new SqlSystem().sqlLiteral(DateTimeUtil::utcNow())); info(new SqlSystem().sqlLiteral("Robert'); DROP TABLE Students;--")); info(new SqlSystem().sqlLiteral(-1234.567890123)); Цитата:
'1900-01-01T00:00:00'
N'Robert''); DROP TABLE Students;--' -1.234567890123E3 Цитата:
anytype хоть и зовётся any, но на самом деле он запоминает тип после первого присвоения. Последующие попытки присвоения запустят штатный механизм преобразований между типами. str же преобразуется почти во всё, кроме DateTime, к сожалению X++: str typeBinding; anytype any = typeBinding; transDate transDate = today(), transDateTest; real realNum = -12345.789012345, realNumTest; int64 i64 = 12345678901234567, i64Test; NoYes enum = NoYes::Yes, enumTest; UtcDateTime dateTime = DateTimeUtil::utcNow(), dateTimeTest; ; Debug::assert(typeof(any) == Types::String); any = transDate; transDateTest = any; Debug::assert(transDateTest == transDate); any = realNum; realNumTest = any; Debug::assert(realNumTest == realNum); any = i64; i64Test = any; Debug::assert(i64Test == i64); any = enum; enumTest = any; Debug::assert(enumTest == enum); any = dateTime; dateTimeTest = any; info("OK"); |
|
|
|