|
![]() |
#1 |
Участник
|
Для АХ 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; } } 5. Перезапускаем АОС. 6. Проверяем на всякий случай присвоение нового RecId с помощью вставки строки. PS. Если нет уверенности, то сначала "тренируемся на кошках" ![]() |
|
|
За это сообщение автора поблагодарили: Logger (2), Poleax (2), AvrDen (1). |