Джобец
X++:
// GRD_fixQueryValue_pkoz // pkoz 27.02.2009
static void Job463(Args _args)
{
int dd;
// str data;// = 27\02\2009;
date data = dateNull();
// date data = 27\02\2009;
vendTable vendTable;
Query Query;
QueryRun qr;
str getRange()
{
;
//return date2strXpp(data);
return
strFMT( '((%1==%2))',
fieldStr(vendTable, modifiedDate),
//QueryValue(data) // с таким параметром кривая дата будет пр использовании расширенных запросов
date2strXpp(data) // а при таком все нормально
)
;
}
void qu(boolean _lit, boolean _ext, str _s)
{
boolean good;
;
//info("");
Query = New Query();
if (_lit)
Query.literals(1);
if (_ext)
Query.addDataSource(tableNum(vendTable)).addRange(fieldNum(vendTable,
//modifiedDate
recId
)).value(
getRange()
);
else
Query.addDataSource(tableNum(vendTable)).addRange(fieldNum(vendTable, modifiedDate)).value(QueryValue(data));
info(Query.dataSourceNo(1).toString());
qr = New QueryRun(Query);
good = qr.next();
info(strFMT("%3 Литералы %1, Расш запрос %2, recId = %4", _lit, _ext, good ? "Есть результат" : "Нет результата", good ? qr.getNo(1).RecId : 0));
info("");
//info("");
}
;
setPrefix("Оператор SQL");
info(getRange());
//GRD_SqlTraceOn();
//info("");
qu(0, 0);
qu(0, 1);
qu(1, 0);
qu(1, 1);
//info("");
//GRD_SqlTraceOff();
}
Как вы и предполагали, проблема связана с использованием -Internal=NoCursorReuse
Без использования этого ключа логирование может выдавать неверную информацию. modifiedDate - ни при чем
При изменении даты фильтрации
X++:
date data = dateNull();
- логирование показывает значение которое использовалось в первый раз. Запрос на БД в любом случае правильный уходит.