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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 25.01.2002, 17:48   #1  
banbery is offline
banbery
Участник
 
1 / 10 (1) +
Регистрация: 25.01.2002
? Взаимодействие с Аксаптой через COM+
Кто знает, подскажите, при подключении к Аксапте через СОМ создаем следующие обьекты, например:
Axapta, AxaptaQuery, AxaptaDataSource, AxaptaRange, AxaptaQueryRun, AxaptaTableBuffer.
Каково время жизни обьектов?
Например, "Axapta" нужен на протяжении всего сеанса (Logon, Logoff).
"AxaptaQuery" и "AxaptaDataSource" уже труднее, нужно ли создавать новые при обращении к другой таблице или достаточно переопределить первые?
Что происходит с переопределенными? Просто остаются в памяти до конца сеанса? Как можно их освободить? (=nil ?)
И еще вопрос, как найти запись в базе? (Метод "Find" в "RecordSortedList" если кто использовал поделитесь).

Пример кода на Delphi:

procedure TForm1.FormCreate(Sender: TObject);
begin
Axapta := CreateCOMObject(StringToGUID('AxaptaCOMConnector.Axapta')) as IAxapta ;
Axapta.Logon('Admin');
AxaptaQuery := Axapta.CreateObject('Query');
AxaptaDataSource := AxaptaQuery.Call('AddDataSource', CustTable); // 77
AxaptaRange := AxaptaDataSource.Call('AddRange', CustTable_Name); // 2
AxaptaRange.Call('Value', '*');
AxaptaQueryRun := Axapta.CreateObject( 'QueryRun', AxaptaQuery);

While (AxaptaQueryRun.Call('Next')) do begin
AxaptaTableBuffer := AxaptaQueryRun.Call('GetNo', 1);
StrList.Add(AxaptaTableBuffer.field['AccountNum']);
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
AxaptaDataSource := AxaptaQuery.Call('AddDataSource', VendTable); // 505
AxaptaRange := AxaptaDataSource.Call('AddRange', VendTable_Name); // 2
AxaptaRange.Call('Value', '*');
AxaptaQueryRun := Axapta.CreateObject( 'QueryRun', AxaptaQuery);

While (AxaptaQueryRun.Call('Next')) do begin
AxaptaTableBuffer := AxaptaQueryRun.Call('GetNo', 1);
StrList.Add(AxaptaTableBuffer.field['AccountNum']);
end;
end;
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Проблема с импортом из Excel через COM Romsrs DAX: Программирование 18 10.06.2008 10:34
Работа с Excel через COM и ошибка 0x800A03EC (Range.AutoFilter) gl00mie DAX: Программирование 15 30.03.2007 18:37
Проблема доступа через COM Connector wit DAX: Функционал 0 10.07.2006 12:34
связь с 1С через COM rinugun DAX: Программирование 9 03.12.2004 11:28

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

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

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