Einzelnen Beitrag anzeigen

Shubit

Registriert seit: 17. Mai 2009
64 Beiträge
 
#5

Re: Speichern eines großen Arrays

  Alt 1. Apr 2010, 09:00
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)?
  Mit Zitat antworten Zitat