12.05.2015, 14:38 | #1 |
Участник
|
Вставка записи и новый RecID
если я делаю экспорт из своей системы в Аксапту и мне необходимо вставить RecId, то можно ли сделать просто максимальное+1 или есть какие -то процедуры?
|
|
12.05.2015, 14:46 | #2 |
Гость
|
|
|
12.05.2015, 15:14 | #3 |
Участник
|
У Вас версия какая? Если 2012, то есть хранимая процедура sp_GetNextRecId
|
|
12.05.2015, 15:52 | #4 |
Участник
|
Спасибо! получается моя вставка max(RecId)+1 может вызвать конфликт при стандартной вставке записи аксаптой, т.е. возможно эта процедура из таблицы SYSTEMSEQUENCES получит в следующий раз значение равное моему добавленному макс+1 и начнет ругаться?
|
|
12.05.2015, 15:59 | #5 |
Участник
|
желательно не вставлять данные напрямую из других систем в таблицы аксапты, которые активно используются системой. используйте для этого специально созданные для этого таблицы, recid в них не будет иметь особого значения
|
|
12.05.2015, 21:13 | #7 |
Участник
|
Также можно использовать.NET Business Connector, тогда Аксапта при вставке будет генерировать RecId и другие значения системных полей стандартными механизмами..
Пример кода для вставки записи можно найти по следующей ссылке Последний раз редактировалось Cardagant; 12.05.2015 в 21:18. |
|
13.05.2015, 16:45 | #8 |
Участник
|
Цитата:
Сообщение от Cardagant
Также можно использовать.NET Business Connector, тогда Аксапта при вставке будет генерировать RecId и другие значения системных полей стандартными механизмами..
Пример кода для вставки записи можно найти по следующей ссылке |
|
13.05.2015, 17:02 | #9 |
Гость
|
|
|
13.05.2015, 19:20 | #10 |
Участник
|
Вы указали, что делаете вставку из некоторой своей системы и я предположил, что эта система оперирует собственным языком программирования. Код, использующий Business Connector, должен быть написан на языке этой системы.
Расскажите пожалуйста подробнее откуда делается вставка. Также присоединяюсь к вопросу axm2013 . |
|
14.05.2015, 09:38 | #11 |
Участник
|
Добрый день!
Так попробуйте: X++: declare @my_new_recid bigint
exec sp_GetNextRecId @tableid = 104532, @recid = @my_new_recid output
select @my_new_recid Последний раз редактировалось Товарищ ♂uatr; 14.05.2015 в 09:48. |
|
14.05.2015, 09:39 | #12 |
Участник
|
ПОМОГИТЕ как вернуть в коде x++ аксапты результат sp_GetNextRecId ??
exstr = strFmt(" exec sp_GetNextRecId 104532 "); resultSet = wrkADODBConnection.executeQuery(exstr); ругается на неверное число аргументов или неверный тип аргументов. Задача из SQLбазы другой системы(которая велась раньше) в коде аксапты вытащить данные (что получилось) и вставить в таблицу аксы, где RECID необходимо генерить поправильному. max(RECID)+1 может пересечься при добавлении через Аксу новой записи руками. проверено. |
|
14.05.2015, 09:49 | #13 |
Участник
|
Цитата:
exstr = strFmt("declare @my_new_recid as bigint exec sp_GetNextRecId @tableid = 104532, @recid = @my_new_recid output "); resultSet = wrkADODBConnection.execute(exstr); RecIdNew = resultSet.getInt(1); getInt не поддерживается... |
|
14.05.2015, 09:50 | #14 |
Участник
|
Цитата:
X++: strSelect = @"declare @my_new_recid bigint
exec sp_GetNextRecId @tableid = 104532, @recid = @my_new_recid output
select @my_new_recid"; X++: resultset.getInt64(1); Последний раз редактировалось Товарищ ♂uatr; 14.05.2015 в 09:52. |
|
14.05.2015, 09:52 | #15 |
Участник
|
к сожалению Метод "getInt64" не поддерживается интерфейсом Automation COM-объекта класса "_Recordset".
|
|
14.05.2015, 09:54 | #16 |
Участник
|
сага о X,Y и Z
http://www.gunsmoker.ru/2008/10/x-y-z.html |
|
|
За это сообщение автора поблагодарили: Товарищ ♂uatr (0). |
14.05.2015, 09:58 | #17 |
Участник
|
Цитата:
X++: @"declare @my_new_recid bigint
exec sp_GetNextRecId @tableid = 104532, @recid = @my_new_recid output
select CAST(@my_new_recid as varchar(max))" |
|
|
За это сообщение автора поблагодарили: Морковка (1). |
14.05.2015, 10:00 | #18 |
Участник
|
А в чём проблема прямо в Аксе (куда вставляете данные) наполнять табличный буфер извлечёнными из другой системы данными и производить вставку? При этом Recid будет генериться при вставке.
Последний раз редактировалось Cardagant; 14.05.2015 в 10:13. |
|
|
За это сообщение автора поблагодарили: Морковка (1). |
14.05.2015, 10:01 | #19 |
Участник
|
|
|
14.05.2015, 11:21 | #20 |
Участник
|
Цитата:
Спасибо! Аксапта сама всё делает. Но опыт с вызовом GetRecID мне тоже пригодится. |
|