Hallo Community,
ich benutze die neueste Version (7.91) von Absolute Database. Für die Entwicklungsphase setze ich die Tabellen-Eigenschaften generell z.B.
Table1.Active := True;
Ich möchte erreichen, daß die fertige Exe aus jedem Verzeichnis heraus die Datenbank findet. Dazu gehe ich wie folgt vor:
Delphi-Quellcode:
CONST
MyDB_Name = 'MyDB.abs';
Pfad_relativ = '..\..\';
...
procedure TForm1.CreateForm(Sender: TObject);
begin
MyDB.DatabaseFileName := ExtractFilePath(Application.ExeName) + Pfad_relativ + MyDB_Name;
MyDB.Open;
Tabelle1.Open;
Tabelle2.Open;
end;
Wenn ich die
DB zum Testen des obigen "SoftCodes" verschiebe oder umbenenne und die EXE aus einem anderen Verzeichnis heraus starte, kommt es zu einer
Exception, wobei die ursprünglich in der Property vorhandene „hardcodierte“ Pfad namentlich vermißt wird, obwohl ich diesen eigentlich überschrieben habe…
Anscheinend wird intern bereits VOR obigem TForm1.CreateForm auf die Datenbank zugegriffen.
Kennt jemand eine Abhilfe?
Danke im Voraus!
Gruß
Andreas
Stell sicher, dass Active auf False steht bevor Du eine Version baust, die ihre Datenbank per gesetztem Pfad finden soll. Sonst versucht die Anwendung, schon auf die
DB zuzugreifen (mit den
design-time settings) bevor der onCreate Event des Forms überhaupt aufgerufen wird.