Показать сообщение отдельно
Старый 22.06.2006, 13:53   #1  
Zeratul is offline
Zeratul
Участник
 
75 / 10 (1) +
Регистрация: 29.09.2005
Адрес: Минск
Установка условия ИЛИ (OR) в Query
Еcmь некий метод Query:

public Query initQuery()
{
queryBuildDataSource qBDS;
queryBuildRange qBRange;
;

// создаём объект динамического запроса
query = new Query();

//определяем источник данных
qBDS = query.addDataSource(tablenum(RAssetMoveHist));
qBRangedat = qBDS.addRange(fieldnum(RAssetMoveHist, ChangeDate));
qBDS = qBDS.addDataSource(tablenum(RAssetTable));
//устанавливаем связь
qBDS.addLink(fieldnum(RAssetMoveHist, AccountNum),fieldnum(RAssetTable, AccountNum));

// определяем поле-критерий
qBDS.addRange(fieldnum(RAssetTable, HB_AClassCode_OS));
qBRange = qBDS.addRange(fieldnum(RAssetTable,AssetType));
qBRange.value(queryvalue(RassetType::Smallvalueable));

qBDS = query.dataSourceNo(1);
INFO(qBDS.toString());

Return query;
}


Он создаёт запрос вида:

SELECT * FROM RAssetMoveHist JOIN * FROM RAssetTable WHERE RAssetMoveHist.AccountNum = RAssetTable.AccountNum AND ((AssetType = МБП))

Вопрос: как программно сформировать Query вида:

SELECT * FROM RAssetMoveHist JOIN * FROM RAssetTable WHERE RAssetMoveHist.AccountNum = RAssetTable.AccountNum
AND (AssetType = МБП)) AND
(RAssetMoveHist.OldEmployee = RAssetTable.Responsible OR RAssetMoveHist.NewEmployee = RAssetTable.Responsible)


Поясню: вся проблема в условии OR



Спасибо!