Code: Alles auswählen
procedure TForm1.Button2Click(Sender: TObject);
var
  i: qword;
  Origin: string;
  sl: TStringList;
begin
  ZQuery1.Close();
  ZQuery1.SQL.Clear;
  ZQuery1.SQL.Add('CREATE TABLE IF NOT EXISTS dict ( id SERIAL PRIMARY KEY , word varchar(512) NOT NULL);');
  ZQuery1.SQL.Add('CREATE TABLE IF NOT EXISTS stats ( w1 INTEGER NOT NULL REFERENCES dict(id), w2 INTEGER NOT NULL REFERENCES dict(id), fw INTEGER NOT NULL REFERENCES dict(id), az INTEGER NOT NULL, PRIMARY KEY (w1, w2, fw));');
  ZQuery1.SQL.Add('CREATE UNIQUE INDEX ON dict(word);');
  ZQuery1.Open;
  ZQuery1.ExecSQL;
 
 
  Origin := Loadfile('./testfile');
  Origin := Stringreplace(Origin, '''', '''' + '''', [rfReplaceAll]);
  sl := TStringList.Create;
  sl.Delimiter := ' ';
  sl.QuoteChar := #$0;
  sl.DelimitedText := Origin;
  for i := 0 to sl.Count - 1 do
  begin
    ZQuery1.SQL.Clear;
    ZQuery1.SQL.Add('INSERT INTO dict (word) VALUES (''' + sl[i] + ''') ON CONFLICT DO NOTHING;');
    ZQuery1.ExecSQL;
 
   // Das sollte Batch insert werden
   // if i mod 1000 = 0 then
   // begin
   //   ZConnection1.Commit;
   // end;
 
    Form1.Caption := IntToStr(i);
  end;
  sl.free;
end;

 Verein
Verein 
 Links
Links Suche
Suche