![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
как вернуть _Recordset из DLL ? [D7, Win2k]
Adis Tadas © (2004-12-06 09:32:00)Здравствуйте, уважаемые специалисты!
В DLL передаю var _Recordset, хочу заполнить его в DLL и вернуть обратно. У меня не получается следующий код:
1) вызывающая программа:
uses
ShareMem, ADOInt, .. ;
..
function EditRecordSet (var rs: _Recordset): boolean;
Stdcall; External 'mydll.dll' ;
..
var
r: _Recordset ;
r := nil ;
EditRecordSet (r) ;
..
Finalize ;
2) DLL:
uses
ShareMem, .. ;
..
function EditRecordSet (var rs: _Recordset): boolean;
..
DM.ado_qrCommon.SQL := ' select * from XX '
DM.ado_qrCommon.Open ; // здесь все нормально
..
rs := DM.ado_qrCommon.Recordset ; // здесь ошибка
..
Скажите, что здесь не так (насколько я понимаю, нужно создать rs перед присвоением ему DM.ado_qrCommon.Recordset) ?
Заранее спасибо!
novice_man (2004-12-06 09:57:00) [1]type
pRecordSet: ^_RecordSet;
var:
r: pRecordSet;
Может так получится.
Digitman (2004-12-06 09:53:00) [2]function EditRecordSet: _Recordset; External 'mydll.dll';
..
var
r: _Recordset ;
..
r := EditRecordSet;
//здесь работаем с полученным интерфейсом
r := nil; //явно освобождаем интерфейсный объект, если r не локальная переменная текущей процедуры
function EditRecordSet: _Recordset;
begin
DM.ado_qrCommon.SQL := ' select * from XX '
DM.ado_qrCommon.Open ;
Result := DM.ado_qrCommon.Recordset ;
end;
> здесь ошибка
какая ?