Показать сообщение отдельно
Старый 27.12.2002, 13:00   #6  
rumpleteazer is offline
rumpleteazer
Участник
 
127 / 29 (1) +++
Регистрация: 02.09.2002
Цитата:
Изначально опубликовано Maxim Gorbunov


Поподробнее, пожалуйста. Как вы это делали? Из вашего сообщения совершенно не понятно, "где собака порылась". fetchMode 1:1 решил все проблемы? Сейчас попробую, конечно, но... хм, очень сомневаюсь.

Код:
X++:
void test()
{
    Test1 t1;
    Test2 t2;
    Test3 t3;
    QueryRun qr;
    Query  q = new Query();
    QueryBuildDataSource qbd;
    QueryBuildDataSource qbd1;


   qbd = q.addDataSource(tablenum(Test1));
   qbd1 = qbd.addDataSource(tablenum(Test2));
   qbd1.addLink(fieldnum(Test1,ID),fieldnum(Test2,ID));
   qbd1.joinMode(JoinMode::EXISTSJOIN);
   qbd1.fetchMode(0);

   qbd1 = qbd.addDataSource(tablenum(Test3));
   qbd1.addLink(fieldnum(Test1,ID),fieldnum(Test3,ID));
   qbd1.joinMode(JoinMode::EXISTSJOIN);
   qbd1.fetchMode(0);

   qr =new QueryRun(q);
    while(qr.next())
    {
        t1 = qr.getNo(1);
        t2 = qr.getNo(2);
        t3 = qr.getNo(3);
        print t1.ID," , ",t1.B," | ", t2.ID," , ",t2.B," | ", t3.ID," , ",t3.B;
    }

}
Тест пример:

Стурутура таблиц и данные
Test1(ID, B)
1 a
2 b
3 c
4 d
Test2(ID,B)
1 c
1 d
2 e
3 g
5 f
Test3(ID, B)
2 a
2 b
3 b

Результат:
2 , b | 0 , | 0 ,
3 , c | 0 , | 0 ,

Имхо, то что нужно
С уважением, программист группы компаний "Счастливый Кроха".