Hi zusammen
Der Abruch erfolgt gleich im erstem Statementt: (Hier das 2.)
Delphi-Quellcode:
function TDMLSQLite.Createkategorien_tabelle:String;
var SQLString: String;
begin
SQLString := 'CREATE TABLE "ContentMasterData"."kategorien_tabelle"('+
'"Kath_ID" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL CHECK("Kath_ID">=0),'+
'"Kategorie" VARCHAR(120) NOT NULL);';
Result := SQLString;
end;
function TDMLSQLite.Createbilddescribetabelle :String;
var SQLString: String;
begin
SQLString := 'CREATE TABLE ContentMasterData.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;
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.
Zitat:
---------------------------
Im Projekt SQLiteTestProject.exe ist eine
Exception der Klasse ESQLiteNativeException mit der Meldung '[FireDAC][Phys][SQLite] ERROR: unknown database ContentMasterData' aufgetreten.
---------------------------
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...
Gruss
Delbor