Главная страница
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.025 c
14-1091723482
Никита
2004-08-05 20:31
2004.08.22
Меню как в Офисе ХР


8-1085399920
ПсихЪ_клон
2004-05-24 15:58
2004.08.22
glColor4f в OpenGL под Delphi


14-1091449996
Новичек
2004-08-02 16:33
2004.08.22
Помогите пожалуйста разобраться.


11-1077964306
nsvi
2004-02-28 13:31
2004.08.22
Проблемы с KOLWebBrowser


3-1090852329
guest_Dmitry
2004-07-26 18:32
2004.08.22
Как избавиться от длительной блокировки записи?