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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 13.05.2015, 19:20   #1  
Cardagant is offline
Cardagant
Участник
 
317 / 54 (2) ++++
Регистрация: 11.10.2011
Цитата:
Сообщение от Морковка Посмотреть сообщение
если я делаю экспорт из своей системы в Аксапту
Вы указали, что делаете вставку из некоторой своей системы и я предположил, что эта система оперирует собственным языком программирования. Код, использующий Business Connector, должен быть написан на языке этой системы.

Расскажите пожалуйста подробнее откуда делается вставка.

Также присоединяюсь к вопросу axm2013 .
Старый 14.05.2015, 09:38   #2  
Товарищ ♂uatr is offline
Товарищ ♂uatr
Участник
Аватар для Товарищ ♂uatr
MCBMSS
 
332 / 913 (31) +++++++
Регистрация: 23.10.2012
Цитата:
Сообщение от Морковка Посмотреть сообщение
exec sp_GetNextRecId 104532
Добрый день!
Так попробуйте:
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   #3  
Морковка is offline
Морковка
Участник
 
71 / 10 (1) +
Регистрация: 12.10.2014
ПОМОГИТЕ как вернуть в коде x++ аксапты результат sp_GetNextRecId ??
exstr = strFmt(" exec sp_GetNextRecId 104532 ");
resultSet = wrkADODBConnection.executeQuery(exstr);

ругается на неверное число аргументов или неверный тип аргументов.

Задача из SQLбазы другой системы(которая велась раньше) в коде аксапты вытащить данные (что получилось) и вставить в таблицу аксы, где RECID необходимо генерить поправильному. max(RECID)+1 может пересечься при добавлении через Аксу новой записи руками. проверено.
Старый 14.05.2015, 10:00   #4  
Cardagant is offline
Cardagant
Участник
 
317 / 54 (2) ++++
Регистрация: 11.10.2011
Цитата:
Сообщение от Морковка Посмотреть сообщение
Задача из SQLбазы другой системы(которая велась раньше) в коде аксапты вытащить данные (что получилось) и вставить в таблицу аксы, где RECID необходимо генерить поправильному. max(RECID)+1 может пересечься при добавлении через Аксу новой записи руками. проверено.
А в чём проблема прямо в Аксе (куда вставляете данные) наполнять табличный буфер извлечёнными из другой системы данными и производить вставку? При этом Recid будет генериться при вставке.

Последний раз редактировалось Cardagant; 14.05.2015 в 10:13.
За это сообщение автора поблагодарили: Морковка (1).
Старый 14.05.2015, 11:21   #5  
Морковка is offline
Морковка
Участник
 
71 / 10 (1) +
Регистрация: 12.10.2014
Цитата:
Сообщение от Cardagant Посмотреть сообщение
А в чём проблема прямо в Аксе (куда вставляете данные) наполнять табличный буфер извлечёнными из другой системы данными и производить вставку? При этом Recid будет генериться при вставке.

Спасибо! Аксапта сама всё делает. Но опыт с вызовом GetRecID мне тоже пригодится.
Старый 14.05.2015, 09:49   #6  
Морковка is offline
Морковка
Участник
 
71 / 10 (1) +
Регистрация: 12.10.2014
Цитата:
Сообщение от Товарищ ♂uatr Посмотреть сообщение
Добрый день!
Так попробуйте:
X++:
declare @my_new_recid bigint
exec sp_GetNextRecId @tableid = 104532, @recid = @my_new_recid output
select @my_new_recid
Спасибо большое! а дальше как правильно?
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   #7  
Товарищ ♂uatr is offline
Товарищ ♂uatr
Участник
Аватар для Товарищ ♂uatr
MCBMSS
 
332 / 913 (31) +++++++
Регистрация: 23.10.2012
Цитата:
Сообщение от Морковка Посмотреть сообщение
exstr = strFmt("declare @my_new_recid as bigint exec sp_GetNextRecId @tableid = 104532, @recid = @my_new_recid output ");
X++:
strSelect       = @"declare @my_new_recid bigint
exec sp_GetNextRecId @tableid = 104532, @recid = @my_new_recid output
select @my_new_recid";
Цитата:
Сообщение от Морковка Посмотреть сообщение
resultSet.getInt(1)
X++:
resultset.getInt64(1);

Последний раз редактировалось Товарищ ♂uatr; 14.05.2015 в 09:52.
Старый 14.05.2015, 09:52   #8  
Морковка is offline
Морковка
Участник
 
71 / 10 (1) +
Регистрация: 12.10.2014
Цитата:
Сообщение от Товарищ ♂uatr Посмотреть сообщение
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);
к сожалению Метод "getInt64" не поддерживается интерфейсом Automation COM-объекта класса "_Recordset".
Старый 14.05.2015, 09:58   #9  
Товарищ ♂uatr is offline
Товарищ ♂uatr
Участник
Аватар для Товарищ ♂uatr
MCBMSS
 
332 / 913 (31) +++++++
Регистрация: 23.10.2012
Цитата:
Сообщение от Морковка Посмотреть сообщение
к сожалению Метод "getInt64" не поддерживается интерфейсом Automation COM-объекта класса "_Recordset".
Могу изобрести велосипед:

X++:
@"declare @my_new_recid bigint
    exec sp_GetNextRecId @tableid = 104532, @recid = @my_new_recid output
    select CAST(@my_new_recid as varchar(max))"
Соответственно брать не int64 а string.
За это сообщение автора поблагодарили: Морковка (1).
Старый 14.05.2015, 10:01   #10  
Морковка is offline
Морковка
Участник
 
71 / 10 (1) +
Регистрация: 12.10.2014
Цитата:
Сообщение от Товарищ ♂uatr Посмотреть сообщение
Могу изобрести велосипед:

X++:
@"declare @my_new_recid bigint
    exec sp_GetNextRecId @tableid = 104532, @recid = @my_new_recid output
    select CAST(@my_new_recid as varchar(max))"
Соответственно брать не int64 а string.

Это то понятно. хочется сделать как правильно)
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
EP DAX 2012 - DetailPage вставка новой записи aweaka DAX: Программирование 2 22.01.2015 10:53
AX2012 R2: Partition и RecId первой записи в таблице Kabardian DAX: Прочие вопросы 0 15.09.2014 10:49
axforum blogs: Переделываем RecId в таблицах Blog bot DAX Blogs 0 06.05.2011 19:11
Вставка строк в таблицы Аксапты сторонними средствами Андре DAX: База знаний и проекты 1 07.05.2009 16:49
Новые записи в таблице без генерации recId Perc DAX: Программирование 23 14.12.2005 18:10

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

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

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