Danke für den Hinweis, bringt allerdings garnicht, der Fehler bleibt erhalten.
Ich habe jetzt diesen code hier:
DLL:
Delphi-Quellcode:
procedure dll_initdatabase;
var ini:TInifile;
begin;
ini := TInIfile.Create('./config.ini');
try
dbmain := TIBDatabase.Create(nil);
trmain := TIBTransaction.Create(nil);
qrmain := TIBQuery.Create(nil);
dbmain.LoginPrompt := false;
dbmain.DefaultTransaction := trmain;
dbmain.IdleTimer := 0;
dbmain.AllowStreamedConnected := false;
trmain.DefaultDatabase := dbmain;
trmain.Params.Add('concurrency');
trmain.Params.Add('nowait');
trmain.AutoStopAction := saNone;
qrmain.Database := dbmain;
qrmain.Transaction := trmain;
qrmain.CachedUpdates := false;
dbmain.DatabaseName := ini.ReadString('database','databasename','');
dbmain.SQLDialect := ini.ReadInteger('database','sqldialect',3);
dbmain.Params.Text :=
'password='+ini.ReadString('database','password','')+#10#13+
'lc_ctype='+ini.ReadString('database','charset','')+#10#13+
'user_name='+ini.ReadString('database','user_name','');
dbmain.Connected := true;
trmain.Active := true;
finally
ini.Free;
end;
end;
function dll_getquery:pointer;
begin;
result:= qrmain;
end;
exports dll_initdatabase,dll_getquery;
begin
end.
Hauptprogramm:
Delphi-Quellcode:
var qrmain: TQuery;
procedure dll_initdatabase; external 'database.dll';
function dll_getquery:pointer; external 'database.dll';
procedure initdatabase;
begin;
//Creates
dll_initdatabase;
qrmain := TQuery(dll_getquery);
end;
Weißt du, oder jemand anderes woran es liegt?