Конференция "Базы" » FireDAC передача коннекта из приложения в DLL [FireBird 3]
 
  • wipr (25.09.17 23:11) [0]
    Всем привет!

    Delphi 10.2

    Столкнулся с проблемой передачи коннекта из приложения в DLL при использовании FireDAC без открытия нового соединения. На просторах интернета решение проблемы не нашел. Подскажите в каком направлении копать.
    Ранее этим механизмом пользовался в BDE и FIBPlus.

    в BDE делал так
    ...
    TShowForm=procedure(Handle: THandle; const DBHandle: HDBIDB);
    var
     Form: TForm;
     hLibForm: THandle;
     ShowForm: TShowForm;
    ...
    function TForm.GetSessionHandle: HDBIDB;
    begin
     result:=Session.Databases[Session.DatabaseCount-1].Handle;
    end;
    ...
       if hLibForm<32
       then ShowMessage('Отсутствует библиотека ***.DLL')
       else begin
         ShowForm:=TShowForm(GetProcAddress(hLibForm,'SHOWFORM'));
         ShowForm(Self.Handle, GetSessionHandle);
       end;
    ...

    в FIBPlus делал так
    ...
    TShowForm=procedure(AppHandle: THandle; const DBHandle: TISC_DB_HANDLE); stdcall;
    var
     frmForm: TfrmForm;
     hLibForm: THandle;
     ShowForm: TShowForm;
    ...
       if hLibForm=0 then begin
         ShowMessage('Библиотека ***.dll не загружена.');
         exit;
       end;
       @ShowForm:=GetProcAddress(hLibFormr,'SHOWFORM');
       if not (@ShowForm=nil) then begin
         ShowForm(Application.Handle,DB.Handle);
       end else begin
         ShowMessage('Ошибка обращения к процедуре SHOWSPRAV в библиотеки ***.dll');
       end;
    ...

    Подскажите как сделать подобное в FireDAC.
 
Конференция "Базы" » FireDAC передача коннекта из приложения в DLL [FireBird 3]
Есть новые Нет новых   [118482   +49][b:0][p:0]