Thema: Syntaxerror

Einzelnen Beitrag anzeigen

Delbor

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

Syntaxerror

  Alt 28. Nov 2021, 11:16
Datenbank: SQLite • Version: 3.xxx • Zugriff über: FireDac
Hi zusammen

Vorerst mal die Fehlermeldung:
Zitat:
Fehler beim Ausführen des Statements:

CREATE INDEX PdfOfficerDB.tblUser.fk_tblUser_tblAdressen1_idx ON tblUser (tblAdressen_AdressID)

[FireDAC][Phys][SQLite] ERROR: near ".": syntax error
Die Syntax zum Erstellen der Tabellen kommt ohne explizite Datenbank-Nennung aus, zum Beispiel:
Delphi-Quellcode:
  SQLstring := 'CREATE TABLE tblAuthor(AuthorID INTEGER PRIMARY KEY NOT NULL, '+
               'Name VARCHAR(45) NOT NULL, '+
               'Vorname VARCHAR(45) NOT NULL, '+
               'tblUser_idTblUser INTEGER NOT NULL, '+
               'CONSTRAINT fk_tblAuthor_tblUser1 '+
                 'FOREIGN KEY(tblUser_idTblUser) '+
                 'REFERENCES tblUser(idTblUser)); ';
Lasse ich jedoch bei der Erstellung des Indexes die DB-Bezeichnung weg (hier: PdfOfficerDB.), führt das zur Fehlermeldung 'unbekannte Datenbank tblUser'. tbl steht hier für Tabelle.

Delphi-Quellcode:
  SQLstring := 'CREATE INDEX PdfOfficerDB.tblUser.fk_tblUser_tblAdressen1_idx ON tblUser (tblAdressen_AdressID)';
  Result := SQLString;
Die tatsächlich nicht erzeugte Datenbank:
M:\HomeOfficFolder11\HomeOfficFolder\HomeOfficerDB.sqlite

Der Datenbankname kann auf keinen Fall hartcodiert sein.

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