Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.08.22;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.044 c
14-1091663080
Alec
2004-08-05 03:44
2004.08.22
Как мне помог этот форум.


3-1090833619
hursand
2004-07-26 13:20
2004.08.22
dbgrid


14-1091609155
Ricko
2004-08-04 12:45
2004.08.22
SMS голосование


3-1091204257
Донской
2004-07-30 20:17
2004.08.22
Переименование поля в ACCESS из дельфи


1-1092068406
Кристина
2004-08-09 20:20
2004.08.22
как отловить нажатие кнопки





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский