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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 12.05.2009, 11:02   #1  
Alexius is offline
Alexius
Участник
Аватар для Alexius
 
461 / 248 (9) ++++++
Регистрация: 13.12.2001
Цитата:
Сообщение от kia Посмотреть сообщение
Хочется обойтись средствами самой АХ. Будем считать что нет доступа к БД.
Для АХ 4.0 :
1. Заходим в АХ монопольно.
2. Создаем класс, запускаемый на сервере.
3. Создаем в нем метод main и вносим в него имя нужной таблицы :
X++:
#define.TableName("MyTable")

public static void main(Args _args)
{
    Connection                      con;
    Statement                       stmt;
    SqlStatementExecutePermission   ssep;
    SqlDictionary                   sqlDictionary;
    str                             sqlStr;
    int                             result;
    ;
    con  = new Connection();
    stmt = con.createStatement();

    select firstonly sqlDictionary where sqlDictionary.TabId == tablenum(#TableName) && !sqlDictionary.fieldId;

    if (sqlDictionary)
    {
        ttsbegin;

        sqlStr  = "UPDATE SystemSequences \n";
        sqlStr += "SET NextVal = (SELECT MAX(RecID) FROM " + sqlDictionary.sqlName + " WITH (TABLOCK)) + 1 \n";
        sqlStr += "WHERE DataAreaId = 'dat' AND Id = -1 AND TabId = " + int642str(tablenum(#TableName)) + " \n";

        ssep =  new SqlStatementExecutePermission(sqlStr);
        ssep.assert();
        result = stmt.executeUpdate(sqlStr);
        CodeAccessPermission::revertAssert();

        ttscommit;
    }
}
4. Запускаем класс
5. Перезапускаем АОС.
6. Проверяем на всякий случай присвоение нового RecId с помощью вставки строки.

PS. Если нет уверенности, то сначала "тренируемся на кошках"
За это сообщение автора поблагодарили: Logger (2), Poleax (2), AvrDen (1).
Теги
recid, systemsequences, ax4.0

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
if (record) vs if (record.RecId) kashperuk DAX: Программирование 18 27.11.2008 18:53
поля, содержащие RecId somebody DAX: Программирование 15 16.05.2008 17:50
aEremenko: Дефрагментация RecID Blog bot DAX Blogs 2 06.03.2007 22:25
Два RecId у одной записи таблицы sparur DAX: Программирование 33 18.12.2006 15:56
Форма InventOnhandItem, Почему RecID у InventSum в этой форме всегда 0? Кирилл DAX: Программирование 2 25.05.2004 18:15

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

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

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