Na gut, über den zufälligen Datensatz mach ich mir dann nochmal Gedanken wenn der Rest läuft (wird schon irgendiwe gehen).
Ka ob es eine gute Endscheidung war, aber ich hab mich jetzt erstmal für die Zeos Komponenten und Sqlite endschieden.
Der
Sql Syntax ist ja an ausreichend Stellen ganz gut erklärt (auch wenn die Anfürhungszeichen überall etwas anderes gehandhabt werden). Aber in Verbindung mit Delphi hapert es jetzt:
Delphi-Quellcode:
ZConnection := TZConnection.Create(self);
ZQuery := TZQuery.Create(self);
ZTable := TZTable.Create(self);
with ZConnection
do
begin
Protocol := '
sqlite-3';
Database := '
database.db';
Connect;
end;
ZQuery.Connection := ZConnection;
ZTable.Connection := ZConnection;
with ZQuery
do
begin
SQL.Clear;
SQL.Add('
CREATE TABLE IF NOT EXISTS VocabularyList (');
SQL.Add('
id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,');
SQL.Add('
Language1 VARCHAR(255) NULL,');
SQL.Add('
Article1 VARCHAR(7) NULL,');
SQL.Add('
Language2 VARCHAR(255) NULL,');
SQL.Add('
Article2 VARCHAR(7) NULL,');
SQL.Add('
Note VARCHAR(255) NULL,');
SQL.Add('
Chance DOUBLE NULL,');
SQL.Add('
AddedOn DOUBLE NULL,');
SQL.Add('
LastTraining DOUBLE NULL,');
SQL.Add('
Mistakes INTEGER NULL,');
SQL.Add('
Trials INTEGER NULL,');
SQL.Add('
Box INTEGER NULL');
SQL.Add('
);');
ExecSQL;
end;
with ZQuery
do
begin
SQL.Clear;
SQL.Add('
INSERT INTO VocabularyList (Language1, Article1, Language2, ' +
'
Article2, Note, Chance, AddedOn, LastTraining, Mistakes, Trials, Box) '
+ '
VALUES (:Language1, :Article1, :Language2, :Article2, :Note, ' +
'
:Chance, :AddedOn, :LastTraining, :Mistakes, :Trials, :Box)');
ParamByName('
Language1').AsString := '
Wort';
ParamByName('
Article1').AsString := '
das';
ParamByName('
Language2').AsString := '
word';
ParamByName('
Article2').AsString := '
the';
ParamByName('
Chance').AsFloat := 0.5;
ParamByName('
AddedOn').AsDateTime := Now;
ParamByName('
LastTraining').AsDateTime := Now;
ParamByName('
Mistakes').AsInteger := 0;
ParamByName('
Trials').AsInteger := 0;
ParamByName('
Box').AsInteger := 0;
ExecSQL;
end;
with ZQuery
do
begin
SQL.Clear;
ZQuery.SQL.Add('
SELECT * FROM VocabularyList');
end;
Also das Erstellen der Tablle funktioniert noch, das Einfügen eines Datensatz scheitert an einen Komma-Syntax Fehler und die Abfrage zum Schluss sollte zwar funktionieren, dann hab wie greif ich dann auf die Abgefragten Daten zu (für die Ausgabe)?