Всем привет!
Столкнулся с такой проблемой (может она обсуждалась уже, но я что то не нашел). Выбираю в цикле while select записи таблицы ProjTable. Там же в цикле после проверки некоторого условия откатываю транзакцию и хочу перейти на следующую строку ProjTable в цикле. Но после вызова continue следующая строка не выбирается. То есть цикл как и положено проходит снова, но курсор ProjTable указывает на ту же самую запись, что и при первом проходе.
Для наглядности написал джоб который описывает данную ситуацию. Причем если цикл дополнить условием по projId (while select projT where projT.projId == "ИД_Проекта"), то continue работает нормально.
X++:
static void Test_TTS_Continue(Args _args)
{
ProjTable projT;
int i = 0;
;
ttsbegin;
while select projT
// while select projT where projT.projId == "ИД_Проекта"
{
info(int2str(i) + ', projId = ' + projT.ProjId);
i++;
if (i>100)
return;
ttsabort;
ttsbegin;
continue;
}
ttscommit;
}
Что это? Глюк или я чего то не понимаю и так задумано? Если кто сталкивался или хотя бы знает как это обойти, поделитесь пожалуйста.
Заранее благодарен.