ich versuche mit dem unten gezeigten Code eine neue Datenbank zu erstellen.
Leider funktioniert das nicht.
Zunächst wird ein völlig neues und leeres ".sqlite"-File erstellt. Das funktioniert.
Das Programm kommt bis zum 1. "ShowMessage" : "ok1?"
Dann kommt die Fehlermeldung: SQL logic error
Woran kann das liegen? Wenn ich den Befehl in den DB-Editor "DB Browser for SQLite" eingebe, nachdem das leere ".sqlite"-File erstellt ist, dann wird der Befehl problemlos ausgeführt.
Code: Alles auswählen
procedure TForm_Start.Bt_Erstellen_DBClick(Sender: TObject);
var
SL_File : TStringlist;
begin
SL_File:= TStringlist.Create;
SL_File.Clear;
SL_File.SaveToFile (PChar( Pfad_zum_Fundus_SQL + 'Pl_x2.sqlite' ) ) ;
Form_Start.ZConneu.Database:= PChar( Pfad_zum_Fundus_SQL + 'Pl_x2.sqlite' ) ;
Form_Start.ZConneu.Connected:=true;
Showmessage('ok1?');
Form_Start.ZConneu.ExecuteDirect( 'CREATE TABLE "My__PL" ( "PL__Id" INTEGER NOT NULL, "CxxSort" VARCHAR(200), "CxxPfad" VARCHAR(200), PRIMARY KEY("PL__Id" AUTOINCREMENT) ) ');
// -->> SQL logic error
Showmessage('ok2?');
SL_File.Free;
end;
{
Wenn man aber den Befehl eingibt in den "DB Browser for SQLite" dann:
Ausführung wurde ohne Fehler beendet.
Ergebnis: Query erfolgreich ausgeführt. Benötigte 0ms
In Zeile 1:
CREATE TABLE "My__PL" ( "PL__Id" INTEGER NOT NULL, "CxxSort" VARCHAR(200), "CxxPfad" VARCHAR(200), PRIMARY KEY("PL__Id" AUTOINCREMENT) )
}
Aliobaba
Versionen: Lazarus 2.0.12 (Windows-Version)
aktuelle Zeos Version, mit der der Befehl "ZConneu.ExecuteDirect" sonst problemlos funktioniert.