Thema: Delphi IB_Connection Pointer

Einzelnen Beitrag anzeigen

Sauerkrautpoet

Registriert seit: 18. Jul 2006
Ort: Leipzig
20 Beiträge
 
#5

Re: IB_Connection Pointer

  Alt 7. Aug 2006, 16:56
folgenden code enthält die exe (Datenmodul ANUcon zur verbindungserstellung):

Delphi-Quellcode:
unit ANUcon;

interface

uses
  SysUtils,Dialogs, Classes, IB_Components;

type
  Tdbcon = class(TDataModule)
    dbconnection: TIB_Connection;
    procedure DataModuleCreate(Sender: TObject);

  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  dbcon: Tdbcon;
  globaldbpointer:Pointer;


implementation

{$R *.dfm}

procedure Tdbcon.DataModuleCreate(Sender: TObject);

begin
  try

    dbconnection.Username:='SYSDBA';
    dbconnection.Password:='masterkey';
    dbconnection.connect;
    
  except
    MessageDlg(blablabla);
  end;
  
    ANUcon.globaldbpointer := ANUcon.dbcon.dbconnection.dbHandle;
    //hier liegt mein problem: ich bekomme kein verwertbaren rückgabewert, es entsteht an ieser stelle
    // immer wieder ein accessviolation error bzw zugriffsverletzung, warum auch immer.
   //wenn nich dahin aber @ANUcon.dbcon.dbconnection verwende hab ich den pointer den ich wollte...
    //nur den wiederum frisst die dll_con.dbhandleshared nicht.

end;

___________________
___________________


diese funktion der DLL soll die verbindung der exe aufgreifen und benutzen:
Delphi-Quellcode:
library equip;
uses
  ShareMem,
  ExceptionLog,Types,Controls,Windows,{ExtCtrls,}Forms,
  SysUtils,
  Classes,
  DM_Eq in 'DM_Eq.pas{DMEq: TDataModule},
  FRM_EQ in 'FRM_EQ.pas{frmEq},
  TH_Consts in 'D:\soft\all\TH_Consts.pas';

{$R *.res}

var
  DLLForm : TfrmEq;
  DLLApplication : TApplication;

function showdllform(pApplication:TApplication;pPanel:TWinControl;pHeight,pWidth:Integer;p_dbpointer:Pointer):HWND;
begin
  if not assigned(DLLApplication) then
    DLLApplication := Application;
  Application := pApplication;
     try

        frmeq.dbconnection.dbHandleShared:=p_dbpointer;

     except
        MessageBox(blabla);
     end;

  if not assigned(DLLForm) then
    DLLForm := Tfrmeq.CreateParented(pPanel.Handle);

  with DLLForm do
    begin
      BorderStyle:= bsnone;
      Height := pHeight;
      Width:=pWidth;
      top:=0;
      show;
    end;
  result:= DLLForm.Handle;

end;
[edit=Phoenix][ Delphi ]-Tags eingefügt. Bitte das Nächste mal selber dran denken. Mfg, Phoenix[/edit]
  Mit Zitat antworten Zitat