Показать сообщение отдельно
Старый 14.07.2010, 12:19   #1  
SashaR is offline
SashaR
Участник
 
3 / 10 (1) +
Регистрация: 16.10.2007
Помогите с range
Здравствуйте.
Помогите с range, есть такой код:

X++:
QueryBuildRange range;
str strOrganization;
;
 
range = SysQuery::findOrCreateRange(queryRun.query().dataSourceTable(tableNum(RPayTrans)),fieldnum(RPayTrans, HrmOrganisationId) );
 
//строку упростили для наглядности (переменные достаются из контейнера) 
strOrganization  =  'HrmOrganisationId = ' + "N'ЦД0001'" + ' OR HrmOrganisationId = ' + "N'УР0019'";
range.value("( " + strOrganization + ") ");
В результате получаем ошибку: "Ошибка расширенного диапазона запроса: ."

Правильный запрос выглядит так:
SELECT * FROM EmplTable ORDER BY EmplTable.EmplId ASC EXISTS JOIN * FROM RPayTrans WHERE EmplTable.EmplId = RPayTrans.Emplid AND ((PayPeriod = {ts '2010-06-30 00:00:00.000'})) AND ((NOT (Amount = 0))) AND ((HrmOrganisationId = N'ЦД0001' OR HrmOrganisationId = N'УР0019'))

У меня же получается:
SELECT * FROM EmplTable ORDER BY EmplTable.EmplId ASC EXISTS JOIN * FROM RPayTrans WHERE EmplTable.EmplId = RPayTrans.Emplid AND ((PayPeriod = {ts '2010-06-30 00:00:00.000'})) AND ((NOT (Amount = 0))) AND (((HrmOrganisationId=N'ЦД0001'OR HrmOrganisationId=N'УР0019')))

Как я понимаю, все дело в тройных кавычках.
Как передать value чтобы было меньше кавычек не понимаю, или же как передать сразу контейнер?
Спасибо.