Einzelnen Beitrag anzeigen

peterbelow

Registriert seit: 12. Jan 2019
Ort: Hessen
672 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Von hard- auf softcodierten DB-Pfad - es klappt nicht...

  Alt 22. Jun 2019, 18:18
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.
Peter Below
  Mit Zitat antworten Zitat