Wie man hier sieht, habe ich im unteren Statement in der 1. Zeile die doppelten Anführungszeichen entfernt. Allerdings erst vor einemm zweiten Durchlauf. Die Fehlermeldung lautete zwar gleich, aber der Datenbankname endete diesmal mit einem Hochkomma.
Dann hab ich noch einen draufgesetzt und die Datenbankbezeichnung weggelassen. Das Statement jetzt:
Delphi-Quellcode:
SQLString := 'CREATE TABLE "bilddescribetabelle"('+
'"BilddesribeID" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL CHECK("BilddesribeID">=0),'+
'"bildtabelle_idBild" INTEGER NOT NULL CHECK("bildtabelle_idBild">=0),'+
'"bildkatID" INTEGER NOT NULL CHECK("bildkatID">=0),'+
'"bildname" VARCHAR(45),"Dateipfad" VARCHAR(250),"bildbeschreibung" VARCHAR(800),'+
'"bildlegende" VARCHAR(300),"Author" VARCHAR(250),'+
'CONSTRAINT "fk_bilddescribetabelle_bildtabelle1" '+
'FOREIGN KEY("bildtabelle_idBild")'+
'REFERENCES "bildtabelle"("idBild"));'+
'CREATE INDEX "ContentMasterData"."bilddescribetabelle.fk_bilddescribetabelle_bildtabelle1_idx" ON"bilddescribetabelle" ("bildtabelle_idBild");';
Result := SQLString;
end;
Und die Fehlermeldung, als der Index erzeug werden sollte:
Zitat:
---------------------------
Im Projekt SQLiteTestProject.exe ist eine
Exception der Klasse ESQLiteNativeException mit der Meldung '[FireDAC][Phys][SQLite] ERROR: table "bilddescribetabelle" already exists' aufgetreten.
---------------------------
Im Anhang zeigt ein Jpeg die im SQLExpert geöffnete Datenbank....
Ja, ich denk, dann werd' ich mal...
Was wirst Du nun ... ? Die Koffer packen? Wochenende beginnen?
Irgendwie gibst Du Dich doch sehr beratungsresistent.
Wenn Du Deine
DB nicht abräumst vor einem 2. Versuch, muss es wohl knallen, beim erneuten Anlegen eines bereits bestehenden Objekts.
Wenn Du trotz mehrfacher Hinweise mehrere Statements in einen Aufruf packst, was soll man da noch raten?
2 Statements werden über ; getrennt.