![]() |
#16 |
Участник
|
Не обновляйте вручную таблицу 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; } Например, если подготовили к вставке 10 записей, а beginRecId = 12345, то соответственно будут значения RecId от 12345 до 12354 PS: Так и не понял, откуда все берут статический метод X++: systemSequence::flushCache(); ![]()
__________________
- Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря... |
|
|
За это сообщение автора поблагодарили: Logger (1), Ace of Database (2), Pandasama (1). |
Теги |
ax2009, recid, sql, systemsequences |
|
|