AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 27.04.2010, 16:45   #1  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от 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 отправляется вполне ожидаемый запрос
Нажмите на изображение для увеличения
Название: 1.PNG
Просмотров: 192
Размер:	53.0 Кб
ID:	5751
точно такой же как и через Query в Management Studio.

Далее включаем database log.
Естественно, вместо запроса delete_from Аксапта будет удалять каждую запись по отдельности и заносить каждую запись в Database log.
(скриншот не привожу - очевидно)

Далее в ax2009 добавляем метод skipDatabaseLog(true);
На SQL отправляется команда "delete from".
Однако, как сказал Shirmin Oleg, в database log все равно добавляется запись. С Пустым RecID и c пустым контейнером.
Нажмите на изображение для увеличения
Название: 2.PNG
Просмотров: 248
Размер:	51.8 Кб
ID:	5752
Нажмите на изображение для увеличения
Название: 3.PNG
Просмотров: 206
Размер:	57.6 Кб
ID:	5753
Нажмите на изображение для увеличения
Название: 4.PNG
Просмотров: 238
Размер:	111.4 Кб
ID:	5754
Нажмите на изображение для увеличения
Название: 5.PNG
Просмотров: 232
Размер:	80.9 Кб
ID:	5755

прикольно.
__________________
полезное на axForum, github, vk, coub.
За это сообщение автора поблагодарили: lev (5), S.Kuskov (5).
Теги
ax2009, ccadoconnection, delete_from, оптимизация, удаление

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Задвоение RecId при вставке записей через COM коннектор db DAX: Программирование 1 23.04.2009 15:12
Класс OfficialsServ_RU - удаление записей из OfficialsTrans_RU Logger DAX: Программирование 3 14.09.2006 15:58
Запуск программы из Аксапты через 2-хзвенку Migel_84 DAX: Программирование 25 27.04.2006 09:41
Проблема с запуском business connector'a через удал доступ yooshi DAX: Программирование 1 07.11.2005 08:56
Удаление записей из InventDim и SalesTable DreamCreator DAX: Программирование 4 08.12.2004 17:23

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 07:18.