![]() |
Datenbank: SQLite • Version: 3.xxx • Zugriff über: FireDac
Datenbankverbindung klappt nicht die zweite
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:
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?
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; Ach ja: CreateDatabase ruft nacheinander die Prozeduren zum Festlegen der SQL-Strings / Erstellen von Tabellen und Indizes auf. Gruss Delbor |
AW: Datenbankverbindung klappt nicht die zweite
Was genau steht denn in DatabaseFolder? Mich verwirrt etwas, dass derselbe Wert für den Datenbanknamen und den Verzeichnisnamen verwendet wird.
|
AW: Datenbankverbindung klappt nicht die zweite
Hi DeddyH
Databasefolder erhält seinen Wert über den Filesearcher und eine Inputbox für den eigentlichen Namen. Der aktuelle Wert ist: M:\HomeOfficerDB. Gruss Delbor |
AW: Datenbankverbindung klappt nicht die zweite
Da fehlt aber doch der Dateiname.
Delphi-Quellcode:
FDSQLiteConnection.Params.Values['DriverID'] := 'SQLite';
FDSQLiteConnection.Params.Values['Database'] := TPath.Combine(DatabaseFolder, 'Delbor.sdb'); // oder welcher Name auch immer FDSQLiteConnection.Params.Values['FailIfMissing'] := 'False'; |
AW: Datenbankverbindung klappt nicht die zweite
Hi DeddyH
Vielen Dank! Wusste ich doch: wer lesen kann, ist klar im Vorteil! Das steht so in allen Beispiele, die ich in den letzten Tagen durchforstet habe... Sagst du mir bescheid, wenn du ein gutes Versteck für mich findest? Gruss Delbor |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:53 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz