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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 05.04.2011, 19:53   #12  
Hyper is offline
Hyper
Участник
Соотечественники
 
163 / 29 (1) +++
Регистрация: 09.10.2003
Цитата:
Сообщение от oip Посмотреть сообщение
А как-нибудь вот так?
Перепроверил - получилось, спасибо. Обидно, правда, что куча времени теряется на внутренний select:
X++:
table1 = Table1::findRec(table1Loop.RecId, true);

Подумалось, может быть сделать что-то вроде следующего:

X++:
Table1 table1;
int bulk = 5000;    // 5;
RecId lastRecId;
int i;
;

do
{
    i = 0;
	
    ttsbegin;

    while select forupdate table1
        order by RecId
        where table1.RecId > lastRecId
    {
        table1.Field1 = strfmt("Blah %1", i);
        table1.doupdate();

        lastRecId = table1.RecId;
        i++;

        if (i >= bulk)
            break;
    }

    ttscommit;
}
while (i >= bulk);

Выглядит оптимальным решением, нет? Правда, работать будет быстро только при наличии уникально индекса по одному полю. Сейчас попробую.

Последний раз редактировалось Hyper; 05.04.2011 в 20:05.
Теги
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, время: 04:18.