AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Syntaxerror

Ein Thema von Delbor · begonnen am 28. Nov 2021 · letzter Beitrag vom 28. Nov 2021
Antwort Antwort
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
Delphi.Narium

Registriert seit: 27. Nov 2017
2.418 Beiträge
 
Delphi 7 Professional
 
#2

AW: Syntaxerror

  Alt 28. Nov 2021, 11:32
Die Syntax dürfte da lauten CREATE INDEX Indexname ON Tabelle (Spaltenname); In Deinem Beispiel würde ich von daher 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.
  Mit Zitat antworten Zitat
Delbor

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

AW: Syntaxerror

  Alt 28. Nov 2021, 12:29
Hi Delphi Natrium

Danke für deine prompte Antwort!

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 05:45 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