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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 01.02.2017, 17:33   #16  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,715 / 1204 (44) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Не обновляйте вручную таблицу SystemSequences. Только через класс SystemSequences в среде Axapta

Я делаю так:

1. Средствами SQL определяю количество записей, которые будут вставлены
2. В среде Axapta через класс SystemSequences резервирую нужное количество значений
3. Средствами SQL выполняю создание записей и формирование RecId

Вот фрагмент для резервирования RecId в Ax4.0

X++:
// Резервирование значений RecId для создания записей средствами SQL
// Возвращает первое зарезервированное значение RecId
protected int64 runReserveRecId(TableId _tableId, int64 _reservedRecords)
{
    systemSequence  systemSequence;
    Int64           beginRecId;
    ;

    systemSequence = new systemSequence();

    // Приостановить автоматическое распределение RecId для указанной таблицы
    systemSequence.suspendRecIds(_tableId);

    // Выделяем нужное количество записей
    beginRecId = systemSequence.reserveValues(_reservedRecords,_tableId);

    // Снять остановку распределения
    systemSequence.removeRecIdSuspension(_tableId);

    return beginRecId;
}
Далее в SQL передаем как параметр полученное значение beginRecId и прибавляем к нему порядковый номер вставляемой записи (начиная нумерацию с нуля).

Например, если подготовили к вставке 10 записей, а beginRecId = 12345, то соответственно будут значения RecId от 12345 до 12354

PS: Так и не понял, откуда все берут статический метод

X++:
systemSequence::flushCache();
Нет такого в Ax4.0 Совсем нет
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...
За это сообщение автора поблагодарили: Logger (1), Ace of Database (2), Pandasama (1).
Теги
ax2009, recid, sql, systemsequences

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
SystemSequences - Выделение RecId kashperuk DAX: Программирование 11 27.08.2013 15:02
ax2009. зачем нужно создавать индекс по recID, если включены CreatedDateTime или ModifiedDateTime? mazzy DAX: Программирование 1 17.07.2011 23:01
Формирование RecId при вставке в таблицу AX из SQL Server Hyper DAX: Программирование 20 28.06.2011 17:30
axforum blogs: Переделываем RecId в таблицах Blog bot DAX Blogs 0 06.05.2011 19:11
aEremenko: Дефрагментация RecID Blog bot DAX Blogs 2 06.03.2007 22:25

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

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

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