Hoe kan ik een geopende database overdragen naar een DLL (m.b.v. een Handler)?
Hoe kan ik een geopende database overdragen naar een DLL (m.b.v. een Handler)?
Volgende code is wat je zoekt, denk ik.
Groeten
Martijn
{-----------------------------------------------------------------------}
{ START DLL CODE }
{-----------------------------------------------------------------------}
library testdll;
uses
bde, db, dbtables, dialogs;
procedure myDLLCall(dbHandle : hdbidb); stdcall;
var
Database : TDatabase;
Query : TQuery;
begin
Database := TDatabase.Create(nil);
try
Database.DatabaseName := 'Brad'; {Some New DBName ie Alias}
Database.Handle := dbHandle;
Query := TQuery.Create(nil);
try
Query.DatabaseName := Database.DatabaseName;
Query.Close;
Query.SQL.Clear;
Query.SQL.Add('SELECT SYSDATE FROM DUAL');
Query.Open;
ShowMessage(Query.FieldByName('SYSDATE').AsString) ;
finally
Query.Free;
end;
finally
Database.Free;
end;
exports
myDllCall;
begin
end.
{-----------------------------------------------------------------------}
{ START APP CODE }
{-----------------------------------------------------------------------}
unit appl;
uses
Windows, Messges, SysUtils, Classes, Graphics, Contrils,
Forms, Dialogs, StdCtrls, DB, BDE;
type
TForm1 = class(TForm)
dbOracle : TDatabase;
Button1 : TButton;
procedure Button1Click(Sender : TObject);
end;
var
Form1 : TForm;
procedure myDllCall(dbHandle : hdbidb); stdcall; external 'TESTDLL.DLL'
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender : TObject);
begin
dbOracle.Open;
myDllCall(dbOracle.Handle);
end;
There are currently 1 users browsing this thread. (0 members and 1 guests)
Bookmarks