Показать сообщение отдельно
Старый 04.10.2005, 17:41   #3  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2494 (89) +++++++++
Регистрация: 20.08.2005
При таком режиме у вас происходит вот что: при входе в цикл
while select forUpdate RAssetTrans
where RAssetTrans.Voucher == LedgerTrans.Voucher
на сервере открывается курсор с вашим запросом. Затем при вызове delete_from этот курсор закрывается и открывается новый курсор delete. После выполнения этой операции на сервер снова посылается запрос на выборку RAssetTrans, но теперь без указания RAssetTrans.Voucher == LedgerTrans.Voucher. И дальше начинается бескончный цикл по удалению одной и той же записи и выборке
select * from RAssetTrans

В данном случае необходимо убрать цикл по RAssetTrans и оставить
delete_from RAssetTrans where RAssetTrans.Voucher==LedgerTrans.Voucher;
либо убрать delete_from, а вместо нее вставить RAssetTrans.delete()

Это с точки зрения работы с базой данных.

А с точки зрения логической целостности данных - после такого удаления боюсь вы не сможете больше работать с вашими данными.
__________________
Axapta v.3.0 sp5 kr2