Показать сообщение отдельно
Старый 03.07.2003, 15:10   #3  
VIS is offline
VIS
Участник
 
37 / 10 (1) +
Регистрация: 13.05.2003
Допустим у меня в MainTable и LineTable след. записи:
Заказ1
СтрокаLine1
СтрокаLine2
Заказ2
СтрокаLine3

Проблема в том, что если я так сделаю(свяжу источники данных, как главная и подчиненная, как addLink работает), то связь между таблицами MainTable и LineTable будет только InnerJoin (OuterJoin и т.д.) и после прикрепления этого запроса к источнику данных на форме данные будут отражаться след. образом:

Заказ1
СтрокаLine1
СтрокаLine2
Заказ1
СтрокаLine1
СтрокаLine2
Заказ2
СтрокаLine3

А нужно, чтобы в query был независимый источник данных по MainTable(1-ый) и независимый источник данных по LineTable(2-ой), записи по которому отбираются по значению MainId в 1-м источнике данных.
Непонятно, почему если я такой запрос присоединяю к источнику данных формы - все работает правильно, а когда делаю:

MainTable MainTable;
LineTable LineTable;
QueryRun qr_main = New QueryRun(q);//q - исходный запрос
QueryRun qr_desc;

while (qr.next())
{
MainTable = qr.get(tblenum(MainTable));
q.datasource(2).findrange(fieldnum(LineTable,MainId)).value(MainTable.MainId);

qr_desc = New QueryRun(q);
while (qr_desc.next())//СРАБОТАЕТ СТОЛЬКО РАЗ, СКОЛЬКО ЗАПИСЕЙ
//В MAINTABLE + ОТОБРАННЫЕ ЗАПИСИ В LINETABLE????!!!!!!
{
.....отберет почему-то больше записей
}
}