Вероятно баян, но в поиске не нашел.
Столкнулся со странным поведением, когда при выборке из таблицы по условию
table.field (но не по условию
table.field != "")
не выбираются значения, начинающиеся со знака "минус" (-). Тут проще показать, чем рассказать )):
X++:
TestTable testTable;
RecordInsertList ril;
;
ttsbegin;
delete_from testTable;
ril = new RecordInsertList(tableNum(TestTable));
testTable.stringField = "1";
ril.add(testTable);
testTable.stringField = "-1";
ril.add(testTable);
testTable.stringField = "(3%*3%)";
ril.add(testTable);
testTable.stringField = "-(3%*3%)";
ril.add(testTable);
testTable.stringField = "bla-bla";
ril.add(testTable);
testTable.stringField = "-bla-bla";
ril.add(testTable);
ril.insertDatabase();
ttscommit;
setPrefix("Result");
while select testTable
where testTable.stringField
{
info("First\t" + testTable.stringField);
}
while select testTable
where testTable.stringField != ""
{
info("Second\t" + testTable.stringField);
}
Так вот, результат сего следующий:
Код:
Result
First
1
(3%*3%)
bla-bla
Second
1
-1
(3%*3%)
-(3%*3%)
bla-bla
-bla-bla
Axapta 3.0 SP3 без KR.
В AX2009 такое не повторяется.