Цитата:
Сообщение от
Shirmin Oleg
В 2009 в лог пишется после каждой отработки delete_from (один раз на один удаляемый блок). LogType = Delete, Table - 40478 (ид. SALESTABLE_TELECOMPHONTRA40478)
Цитата:
Сообщение от
mazzy
Как это не включена? Если в лог пишется после каждой обработки delete_from?
Офигеть, какая интересная информация.
Спасибо.
Если в ax2009 настроить Database Log И отключить его в коде, то запись в Database Log все равно пишется, но один раз на весь Delete_from и с пустым контейнером.
Итак, берем простейший проверочный код (используется
неважная таблица, которая хранит log обработки заказов)
X++:
static void Job1(Args _args)
{
SalesParmLine SalesParmLine;
ParmId ParmId;
select minof(ParmId) from SalesParmLine;
ParmId = SalesParmLine.ParmId;
SalesParmLine.skipDeleteActions(true);
SalesParmLine.skipDatabaseLog(true);
delete_from SalesParmLine
where SalesParmLine.ParmId == ParmId; // по ParmID есть индекс
}
Если не включать Database log, то на SQL отправляется вполне ожидаемый запрос
точно такой же как и через Query в Management Studio.
Далее включаем database log.
Естественно, вместо запроса delete_from Аксапта будет удалять каждую запись по отдельности и заносить каждую запись в Database log.
(скриншот не привожу - очевидно)
Далее в ax2009 добавляем метод skipDatabaseLog(true);
На SQL отправляется команда "delete from".
Однако, как сказал Shirmin Oleg, в database log все равно добавляется запись. С Пустым RecID и c пустым контейнером.
прикольно.