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

Вниз

D7 и IB6.5 в DLL   Найти похожие ветки 

 
AlexandrPV ©   (2004-07-22 15:09) [0]

Кто ме объяснит проблему. У меня есть основная программа в которой находится подключение к базе, а в DLL написаны формы и запросы, так вот когда я использую одновремено две DLL, то происходит ошибка, что-то вроде переобъявления курсора.


 
Desdechado ©   (2004-07-22 19:04) [1]

а ты не хочешь хотя бы показать, как ты вызываешь DLL, что передаешь в нее
и расскажи, что ты понимаешь под курсором, и какая ошибка - полный текст, а не твои догадки о ней


 
AlexandrPV ©   (2004-07-23 12:15) [2]

Ошибка "Dynamic SQL Error|SQL error code = -502|Declared cursor alredy exists."
Смысл в том, что если грузить библиотеки не вместе, то ошибки нет.
В главной програме я подключаю библиотеку следующим образом:
 Инициализация:
 HandleWares:=LoadLibrary("WFReestrWares.dll");
 if HandleWares<>0 then
   begin
     @FGet:=GetProcAddress(HandleWares,"GetInterface");
     Wares:=FGet(Application);
     if Wares<>nil then Wares.Base:=IBDatabase1;
   end;
 Показ формы:
 Wares.Show;
 Так же и другая форма вызывается.
В библиотеке:
function GetInterface(App:TApplication):TFormWares;
 begin
   if not Assigned(DLLApp) then
     begin
       DLLApp:=Application;
     end;
   Application:=App;
   Result:=TFormWares.Create(App);
 end;
procedure TFormWares.FormShow(Sender: TObject);
begin
 IBQuery1:=TIBQuery.Create(Self);
 IBQuery1.SQL.Append("select * from wares");
 IBQuery1.Database:=FBase;
 Trans:=TIBTransaction.Create(Self);
 Trans.AddDatabase(FBase);
 IBQuery1.Transaction:=Trans;
 Trans.StartTransaction;
 IBQuery1.Open;
end;
procedure TFormScale.FormClose(Sender: TObject; var Action: TCloseAction);
begin
 if Trans.Active then Trans.Commit;
 IBQuery1.Destroy;
 Trans.Destroy;
end;

procedure MyDLLProc(Reason:integer);
begin
 if Reason = DLL_PROCESS_DETACH then
  if Assigned(DLLApp) then Application:=DLLApp;
end;

begin
 DLLProc:=@MyDLLProc;
end.

Вот вобщем и все.


 
Desdechado ©   (2004-07-24 20:29) [3]

1. Не вижу объявления переменных IBQuery1 и Trans. Они локальные, глобальные или свойства формы?
2. Я так и не понял - формы в ОДНОЙ ДЛЛ или в разных?
3. В другой форме SQL-текст такой же?
4. Destroy вызывать напрямую - дурной тон, читай доку.



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

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

Наверх




Память: 0.47 MB
Время: 0.022 c
3-1090843450
AleXqwq
2004-07-26 16:04
2004.08.22
ADO+MySql


1-1092055407
oleg_
2004-08-09 16:43
2004.08.22
Как можно определить тип указателя на метод класса


1-1092037671
Salik
2004-08-09 11:47
2004.08.22
Выделение строки в ListBox


1-1091786912
gigabytepretender
2004-08-06 14:08
2004.08.22
Своя орфография в Word98


1-1091796158
MacroDenS
2004-08-06 16:42
2004.08.22
Edit и буфер обмена...