![]() |
#7 |
Участник
|
Все дело в том, что вы изменяете поле, входящее в состав кластерного индекса.
Axapta открывает динамический курсор при использовании forupdate. SQL сервер воспринимает запись с измененным кластерным индексом как новую и добавляет ее в открытый курсор. По-этому при фетче у вас постоянно подтягивается новая запись до тех пор, пока Axapta может изменить значение поля. Что бы обойти этот эффект надо сделать так X++: RCashTrans RCashTrans; RCashTrans RCashTransUpd; ttsbegin; while select RcashTrans where RcashTrans.DocType==1 && ( ...) { RCashTransUpd = RCashTrans::findRecId(RCahsTrans.RecId, True); RcashTransUpd.DocId+="/1"; RcashTransUpd.doUpdate(); } ttscommit; PS 2 Vadik извиняюсь, ссылку на статью заметил уже после написания ответа.
__________________
Axapta v.3.0 sp5 kr2 Последний раз редактировалось AndyD; 30.11.2005 в 10:53. |
|
|
За это сообщение автора поблагодарили: raz (5), Logger (5), FrolovAndy (1). |