Доброго времени суток!
Помогите разобраться с такой проблемой.
Есть 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.