04.10.2005, 16:28 | #1 |
Модератор
|
Цитата:
Сообщение от xxx
delete_from RAssetTrans ..
delete_from LedgerJournalTable .. delete_from LedgerJournalTrans .. delete_from LedgerTrans .. } И никак не могу добиться результата - не удаляется? - сальдо по счетам ГК не меняется? По правде говоря, если таким образом исправлять чужие ошибки в Аксапте - будете вечно крайним(крайней)
__________________
-ТСЯ или -ТЬСЯ ? |
|
04.10.2005, 16:48 | #2 |
Модератор
|
Цитата:
Сообщение от xxx
КОГДА ЗАПУСКАЮ ЭТОТ JOB без удаления, результат выходит, а как добавляю удаление все виснит и без результатно
может быть, Вы все же опишете, какую операцию Вы хотите отменить?
__________________
-ТСЯ или -ТЬСЯ ? |
|
04.10.2005, 17:41 | #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 |
|