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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 27.04.2010, 14:20   #1  
Shirmin Oleg is offline
Shirmin Oleg
Участник
 
89 / 35 (2) +++
Регистрация: 26.03.2004
Цитата:
А в лог заносится запись именно об удалении строки из SALESTABLE_TELECOMPHONTRA40478?
Чему равны поля LOGTYPE и TABLE_?
В 4.0 в лог вообще ничего не пишется.
В 2009 в лог пишется после каждой отработки delete_from (один раз на один удаляемый блок). LogType = Delete, Table - 40478 (ид. SALESTABLE_TELECOMPHONTRA40478) Так что запись в лог не тормозит, тормозит сам delete_from.

X++:
  SALESTABLE_TELECOMPHONTRA40478 table;      
  int64                                    firstRecid, lastRecid;
  int                                      count2Del = 100000;
  ;
  select count(recid) from table where table.Month == _month;
  if(table.RecId > count2Del)
        {
          while (true)
            {
              if((select firstOnly TELECOMPHONTRA40478 where              TELECOMPHONTRA40478.month == _month).recid != 0)
                {
                  select minof(recid) from table where table.Month == _month;
                  firstRecid = table.RecId;
                  lastRecid = firstRecid + count2Del;
                  select maxof(recid) from table where table.month == _month;
                  if(table.RecId < lastRecid)
                    lastRecid = table.RecId;

                  table.skipDatabaseLog(true);
                  table.skipDeleteActions(true);
                  table.skipDeleteMethod(true);

                  delete_from table where table.Month == _month && table.RecId >= firstRecid && table.RecId <= lastRecid;
                }
              else
                break;
            }
        }
      else
        {
          table.skipDatabaseLog(true);
          table.skipDeleteActions(true);
          table.skipDeleteMethod(true);

          delete_from table where table.Month == _month;
        }
Старый 27.04.2010, 14:48   #2  
SRF is offline
SRF
Участник
MCBMSS
Axapta Retail User
 
376 / 562 (19) +++++++
Регистрация: 08.08.2007
Записей в блоге: 1
А сколько времени удаляются из AX 600000 записей (не по частям) ?
X++:
table.skipDatabaseLog(true);
delete_from table where table.Month == _month;
__________________
Sergey Nefedov
Старый 27.04.2010, 15:14   #3  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,448 / 1792 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от SRF Посмотреть сообщение
А сколько времени удаляются из AX 600000 записей (не по частям) ?
Цитата:
Сообщение от Shirmin Oleg Посмотреть сообщение
Если за один раз, то еще дольше (примерно раза в два)
.
Теги
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, время: 01:04.