AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi SQLite DB : Datenbankverbindung klappt nicht
Thema durchsuchen
Ansicht
Themen-Optionen

SQLite DB : Datenbankverbindung klappt nicht

Ein Thema von Delbor · begonnen am 9. Nov 2021 · letzter Beitrag vom 9. Nov 2021
Antwort Antwort
Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.186 Beiträge
 
Delphi 11 Alexandria
 
#1

SQLite DB : Datenbankverbindung klappt nicht

  Alt 9. Nov 2021, 15:46
Datenbank: SQLite • Version: 3 • Zugriff über: FireDac
Hi zusammen

Um es gleich vorwegzunehmen, die Fehlermeldung:
Zitat:
Homeofficerfeproject
[Content]
Fehler beim Aufbau der Datenbankverbindung:

[FireDAC][Phys][SQLite] ERROR: near "foreign": syntax error
Und der Weg dazu:
Ein Treeview zeigt mir den Inhalt meiner Laufwerke an, und hier kann ich den Ort bestimmen, an dem mir eine SQLite-DB erstellt werden soll.
Von hier gelange ich über Rechtsklick/Kontextmenue schliesslich in mein Datenmodul, wobei der Parameter 'DataBaseFolder' den ausgewählten Pfad enthält:
Delphi-Quellcode:
function TDMLSQLiteOfficerFE.CreateAndConnectDatabase(DatabaseFolder: String) : Boolean;
begin
  try
    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.ExecSQL('PRAGMA foreign keys=on'); //<==
    FDSQLiteConnection.Connected := true; // Diese beiden Zeilen habe ich auch schon getauscht
    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;
Die erste Fehlermeldung, durch Pfeil gekennzeichnet:
Zitat:
---------------------------
Benachrichtigung über Debugger-Exception
---------------------------
Im Projekt HomeOfficerFEProject.exe ist eine Exception der Klasse ESQLiteNativeException mit der Meldung '[FireDAC][Phys][SQLite] ERROR: near "foreign": syntax error' aufgetreten.
---------------------------
Anhalten Fortsetzen Hilfe
---------------------------
CreateDatabase schliesslich ruft die Prozeduren zur Erstellung der Tabellen und Inidzes auf.
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.768 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: SQLite DB : Datenbankverbindung klappt nicht

  Alt 9. Nov 2021, 15:55
.. muss die Database nicht offen sein bevor ExecSql ausgeführt wird?

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.490 Beiträge
 
Delphi 7 Professional
 
#3

AW: SQLite DB : Datenbankverbindung klappt nicht

  Alt 9. Nov 2021, 15:55
Unterstrich vergessen: PRAGMA foreign_keys = ON

sqlite pragma foreign

2. Enabling Foreign Key Support
  Mit Zitat antworten Zitat
fisipjm

Registriert seit: 28. Okt 2013
299 Beiträge
 
#4

AW: SQLite DB : Datenbankverbindung klappt nicht

  Alt 9. Nov 2021, 15:56
Den Befehl schreibt man so:

PRAGMA foreign_keys = ON; Du hast den underscore vergessen.
  Mit Zitat antworten Zitat
Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.186 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: SQLite DB : Datenbankverbindung klappt nicht

  Alt 9. Nov 2021, 16:48
Hi zusammen

.. muss die Database nicht offen sein bevor ExecSql ausgeführt wird?

Grüße
Klaus
In der Reihenfolge hatte ich diesen Teil des Codes erstmal: erst die DB öffnen, und dann die Sache mit dem foreign_key...

Vielen Dank auch an fisipjm und Delphi.Narium!

Gruss
Delbor
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:01 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz