Einzelnen Beitrag anzeigen

walsch.rene

Registriert seit: 18. Sep 2006
4 Beiträge
 
#1

SQLITE Connection erstellen: Anleitung erbeten

  Alt 3. Apr 2024, 09:16
Datenbank: SQLITE • Version: 3 • Zugriff über: TFDConnection
Guten Morgen,

wo finde ich eine ausführliche Schritt-für-Schritt-Anleitung für das Erstellen einer Connection zu einer SQLITE-Datenbank? Im Netz finden sich Anleitungen ohne Zahl, die auch funktionieren, solange man sie Schritt für Schritt abarbeitet. Sobald ich aber eigene Wege gehe, scheitere ich.

Mein Ziel:
Auf Dienstrechnern möchte ich eine SQLITE-Datenbank mit einem Delphi GUI anlegen. Weder ich noch die Kollegen haben Adminrechte und werden sie auch nicht bekommen. Die DB wird auf einem gemeinsamen Netzlaufwerk liegen, das GUI auf jedem Dienstrechner.

Mein Problem:
Obwohl es die SQLITE-DB gibt und sie auch Tabellen enthält und diese auch Daten enthalten (alles mit Visual Studio Code angelegt bzw. eingegeben) und obwohl ich zur Designzeit sowohl die Connection (TFDConnection) als auch die Tabellen (TFDQuery) auf Connected bzw. Active setzen kann, erhalte ich zur Laufzeit die Fehlermeldung "Tabelle tabellenname existiert nicht".
Ich habe mir daraufhin die Embarcadero (CE 10.4) Trainings-DB SQLITE Demo genommen und mir eine der Tabellen via Datenexplorer in mein GUI-Datenmodul gezogen. Dabei wird bekanntlich eine passende FDConnection erzeugt (die Tabelle aus der Beispiel-DB habe ich sofort wieder gelöscht). In dieser Connection habe ich zur Designzeit lediglich den Database-Parameter auf den absoluten Pfad meiner SQLITE-DB geändert und alle meine Datasets mit dieser FDConnection verbunden. Damit konnte ich vollkommen problemlos arbeiten. Nun wollte ich dem GUI eine Möglichkeit hinzufügen, den Pfad zur DB auf dem Dienstrechner selbst zu wählen (TOpenDialog). Den Parameter Database mit dem kompletten absoluten Pfad habe ich gemäß der Anleitung (http://docwiki.embarcadero.com/CodeE....SQLite_Sample) geändert:

Delphi-Quellcode:
with dbMain do begin
  Close;
  // create temporary connection definition
  with Params do begin
    Clear;
    Add('DriverID=SQLite');
    Add('Database=x:\path_to_database\db.sdb');
  end;
  Open;
end;
Jetzt erhalte ich die Meldung, dass meine Tabelle tabellenname nicht existiert, obwohl sie es tut und ich zuvor problemlos mit ihr arbeiten konnte. An der DB selbst und den Datasets in meinem GUI habe ich keine Veränderungen vorgenommen, nur an der Connection.

Mein Verdacht:
Mit Clear löscht man alle Params, fügt aber per Code nur zwei hinzu.

Wo liegt mein Denkfehler, was mache ich falsch?

Vielen Dank und freundliche Grüße,
René

Geändert von TBx ( 3. Apr 2024 um 13:01 Uhr) Grund: Delphi-Tags eingefügt
  Mit Zitat antworten Zitat