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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 05.04.2011, 16:30   #1  
Hyper is offline
Hyper
Участник
Соотечественники
 
163 / 29 (1) +++
Регистрация: 09.10.2003
Angry Модификация огромного количества (сотни тысяч) записей в Axapta 3.0 SP4
Давненько я с Аксаптой 3.0 не работал.

Мне необходимо модифицировать огромное количество записей в ряде таблиц в третьей Аксапте. В одной таблице может быть, скажем, 700 000 записей. Разумеется, одной транзакцией этого делать нельзя. Код у меня наподобие следующего:
X++:
Table1 table1;
int bulk = 5000;    // 5;
int i;
;

ttsbegin;

while select forupdate table1
{
    i++;
    table1.Field1 = strfmt("Blah %1", i);
    table1.doupdate();

    if (i mod bulk == 0)
    {
        ttscommit;
        ttsbegin;
    }
}

ttscommit;
Так вот, после каждого ttscommit следующий while select выбирает не следующую, пять тысяч первую запись, а вновь берет самую первую. Таким образом, цикл никогда не заканчивается, и первые пять тысясяч записей в таблице вновь и вновь обновляются.

Что за дела?

Я уже пытался использовать и while select и SelectForUpdate отдельно, и дополнительную переменную Table1 (одну для цикла, одну для find forupdate), и Query, и UserConnection, и вместо внешних ttsbegin/ttscommit использовать только внутренние, и чего я только не пытался - везде свои грабли. Чувствую, следующим шагом буду ориентироваться на диапазон RecId и просто делать кучу отдельных циклов по каждой таблице.

У кого-то есть идеи что вообще происходит? На всякий случай - все это происходит в классе унаследованном от RunBaseBatch (но не в пакетной обработке).
Теги
axapta

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
вывод количества записей в таблице на web форме и указание текущей страницы таблицы bambuk1960 DAX: Программирование 1 06.07.2006 13:27
Axapta SP4 EE FP1 и Axapta SP4 EE polygris DAX: Администрирование 9 27.01.2006 11:27
Axapta 3.0 SP4 - нет русского языка Grimly DAX: Администрирование 3 06.12.2005 12:53
Установка Axapta 3.0 SP4 Easten Europe Alexander A. DAX: Администрирование 0 23.08.2005 15:24
Введение в Аксапту Роман Кошелев DAX: Прочие вопросы 0 18.12.2001 14:00

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

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

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