Показать сообщение отдельно
Старый 18.01.2006, 14:56   #1  
Protey is offline
Protey
Участник
 
143 / 15 (1) ++
Регистрация: 22.09.2005
Адрес: Сургут
Проблема с циклом while select...
Есть запрос, возвращающий две записи, но цикл отрабатывает один раз

Код:
   while select InventDimId from _invJourTrans group by InventDimId
   where _invJourTrans.JournalId==_invJourTable.JournalId
{
    print _invJourTrans.InventDimId;

   if (outputToWord.makeDocument())
    {
        try
        {

           _invJourTable = _args.record();

           select  firstonly _invJourTrans where _invJourTrans.JournalId==_invJourTable.JournalId;
                outputToWord.run(_args);

            outputToWord.releaseDocument();
        }
        catch(Exception::Error)
        {
            outputToWord.releaseDocument();
        }
    }
 }
}
если убрать из while Обработку if, то print выводит две записи, а так выводит одну запись, if отрабатывает и цикл прерывается. самое интересно то, что я создал табличку с тремя записями и попробовал сделать так:

Код:
     while select * from ABC //where _invDim.inventDimId == _invJourTrans.InventDimId
{
    print ABC.Field1;

   if (outputToWord.makeDocument())
    {
        try
        {

           _invJourTable = _args.record();

           select  firstonly _invJourTrans where _invJourTrans.JournalId==_invJourTable.JournalId;
                outputToWord.run(_args);

            outputToWord.releaseDocument();
        }
        catch(Exception::Error)
        {
            outputToWord.releaseDocument();
        }
    }
 }
}
и цикл отработал все три раза!

В чем может быть проблема?