Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.05.30;
Скачать: CL | DM;

Вниз

RecordSet из DLL   Найти похожие ветки 

 
tlan   (2004-05-04 18:34) [0]

Доброе всем время суток.
Возникло два таких вопроса (использую ADOQuery):
1. Функция, которая определена в dll, возвращает значение RecordSet, т.е. набор даных, которые она отобрала из базы например:
 function DocSearch(uid:SmallInt, upart:SmallInt):TRecordSet;
Могу ли я из основной программы получить данные, которые она вернула? И если да, то как.


 
Polevi ©   (2004-05-04 18:46) [1]

можно возвращать IRecordset интерфейс - ADOQuery.Recordset


 
tlan   (2004-05-04 19:17) [2]

я попробовал так:
функция в dll:
function DocSearch(uid:SmallInt; upart:SmallInt):_RecordSet;

вызывается в программе:
fmMainQuery.Recordset:=DocSearch(UserID,UserPart);

но приложение глухо "уходит в себя" без всяких ошибок.

А как это через IRecordset, если можно попобдробнее.


 
Polevi ©   (2004-05-04 19:46) [3]

приведи код ф-ии полностью


 
tlan   (2004-05-04 20:08) [4]

в dll:

Uses
 ...
 ActiveX,
 ADODB
 ...
function DocSearch(uid:SmallInt; upart:SmallInt):_RecordSet;
begin
 fmDocSearch:=TfmDocSearch.Create(nil);
 try
   fmDocSearch.UserID:=uid;
   fmDocSearch.UserPart:=upart;
   fmDocSearch.ShowModal;
   Result:=fmDocSearch.Query.Recordset;
 finally
   fmDocSearch.Free;
 end;
end;


в программе:

type
 TDocSearch=function(uid:SmallInt; upart:SmallInt):_RecordSet;
var
 LibHandle:THandle;
 DocSearch:TDocSearch;
begin
 LibHandle := LoadLibrary("RDSearch.dll");
 if LibHandle = 0 then
   raise Exception.Create("Не найдена библиотека RDSearch.dll")
 else begin
   try
     @DocSearch := GetProcAddress(LibHandle, "DocSearch");
     if @DocSearch <> nil then
     fmMainQuery.Recordset:=DocSearch(StrToInt(UserID),StrToInt(UserPart));
   except
     on E: Exception do
       ShowMessage("Возникла ошибка: " + E.Message);
   end;
 end;
 FreeLibrary(LibHandle);


 
tlan   (2004-05-04 20:15) [5]

вылетает Ошибка: Privileged Instruction


 
tlan   (2004-05-04 20:30) [6]

вроде бы все работАет!
сам допустил некоторые ошибки, а функции так и должны выглядеть.
Спасибо за внимание.



Страницы: 1 вся ветка

Текущий архив: 2004.05.30;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.034 c
1-1084600511
angelcom
2004-05-15 09:55
2004.05.30
Вопрос о передаче параметра приложению


14-1084535399
Соловьев
2004-05-14 15:49
2004.05.30
У кого-то получилось откомпилить клиента форума - DMClient?


1-1084541254
WG
2004-05-14 17:27
2004.05.30
Как переименовать закладки у компонента PageControl ?


3-1084016146
Nazer
2004-05-08 15:35
2004.05.30
Не могу создать индекс


1-1084667934
IrBisoff
2004-05-16 04:38
2004.05.30
OwnerDraw TLabel