Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Syntaxerror (https://www.delphipraxis.net/209375-syntaxerror.html)

Delbor 28. Nov 2021 11:16

Datenbank: SQLite • Version: 3.xxx • Zugriff über: FireDac

Syntaxerror
 
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

Delphi.Narium 28. Nov 2021 11:32

AW: Syntaxerror
 
Die Syntax dürfte da lauten
SQL-Code:
CREATE INDEX Indexname ON Tabelle (Spaltenname);
In Deinem Beispiel würde ich von daher
SQL-Code:
CREATE INDEX fk_tblUser_tblAdressen1_idx ON tblUser (tblAdressen_AdressID);
erwarten.

Das im Create eines Index der Datenbankname (egal wo) angegeben werden muss, ist mir bisher noch nicht untergekommen. Laut Doku zu CREATE INDEX sieht das bei SQLite nicht anders aus.

Delbor 28. Nov 2021 12:29

AW: Syntaxerror
 
Hi Delphi Natrium

Danke für deine prompte Antwort!

Gruss
Delbor


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:58 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