![]() |
#3 |
Участник
|
При таком режиме у вас происходит вот что: при входе в цикл
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 |
|