Hi zusammen
Auch hier wieder mal erst die Fehlermeldung:
---------------------------
Im Projekt HomeOfficerFEProject.exe ist eine
Exception der Klasse ESQLiteNativeException mit der Meldung '[FireDAC][Phys][SQLite] ERROR: unable to open database file' aufgetreten.
---------------------------
Über einen Kontextmenü-Punkt mit Inputbox zur Eingabe eines
DB-Namens lande ich schliesslich hier:
Delphi-Quellcode:
function TDMLSQLiteOfficerFE.CreateAndConnectDatabase(DatabaseFolder: String) : Boolean;
begin
try
TDirectory.CreateDirectory(DatabaseFolder);
FDSQLiteConnection.Connected := false;
FDSQLiteConnection.Params.Clear;
FDSQLiteConnection.Params.Add('DriverID=SQLite');
FDSQLiteConnection.Params.Add('Database='+DatabaseFolder); // Add('Database=' + dlgOpen.FileName);
FDSQLiteConnection.Params.Values['FailIfMissing'] := 'False';
FDSQLiteConnection.Connected := true; //<==
FDSQLiteConnection.ExecSQL('PRAGMA foreign_keys=on');
Result := FDSQLiteConnection.Connected;
CreateDatabase(DatabaseFolder);
except
on E: EDatabaseError do
begin
ShowMessage('Fehler beim Aufbau der Datenbankverbindung: ' + #13#13 + E.Message);
Result := False;
end;
end;
end;
Hier wird als erste ein Ordner für die
DB am Pfad Databasefolder angelegt. Dann wird Databasefolder, das den kompletten
DB-Pfad enthält, an den Parameter 'Database' zugewiesen - soviel, wie ich verstanden habe, läuft das genau so ab, wie es sein sollte. Nur führt der Versuch, die Verbindung herzustellen, zu obiger Fehlermeldung. Was mache ich falsch?
Ach ja: CreateDatabase ruft nacheinander die Prozeduren zum Festlegen der
SQL-Strings / Erstellen von Tabellen und Indizes auf.
Gruss
Delbor