Показать сообщение отдельно
  #1  
Старый 04.01.2011, 20:49
com+ com+ вне форума
Прохожий
 
Регистрация: 26.11.2010
Сообщения: 7
Репутация: 10
Печаль Работа с _Recordset (COM+)

Доброго времени суток!
Помогите разобраться с такой проблемой.
Есть COM сервер,
Код:
IMyServer = interface(IAppServer)
    ['{1B3F3AA3-1DCE-40B1-BA13-9A95EEA439AB}']
    function  GetBlock(ATypeStort: Smallint): OleVariant; stdcall;
  end;
Реализация функции
Код:
  TMyServer = class(TMtsDataModule, IMyServers)
    ...
    function GetBlock(ATypeStort: Smallint): OleVariant;
  End;

uses ADOInt;
  ...

function TMyServer.GetBlock(ATypeStort: Smallint): OleVariant;
begin
  ...
  Result := CoRecordset.Create;
  ...
end;
На клиенте вызывается так:
Код:
...
  Var 
    rec: _ Recordset;
    MyServer:IMyServer; 
...
  rec := IDispatch( MyServer.GetBlock( 1 ) ) as _Recordset // Выдает ошибку
Знаю что OleVariant не годится для возврата _Recordset, перепробовал разные варианты.
При вызове из клиента вылетает access violation. Помогите вернуть клиенту _Recordset.
Ответить с цитированием