Błąd podczas zapisu do tabeli bazy

0

witam, zapewne to juza się pojawiało, ale mam problem z zapisam danych odczytanych z pliku tekstowego do tabeli w bazie postgresQL

mój kod

procedure TForm1.Button2Click(Sender: TObject);
var
  A1: TEXTFILE;
  A2: TStringList;
  A3: string;
begin
  BUTTON1.Enabled := False;
  Edit1.text := FileOpenDialog1.FileName;
  AssignFile(A1, FileOpenDialog1.FileName);
  Reset(A1);
  PROGRESSBAR1.Position := 0;
  PROGRESSBAR1.Max := FileSize(A1);
  while not (Eof(A1)) do
  begin
    Readln(A1, A3);
    ExtractStrings([';'], [], PCHAR(A3), A2);
    ZQuery1.SQL.Clear;
    ZQuery1.SQL.Add('INSERT INTO PASAZER(IMIE,NAZWISKO) VALUE(' + #34 + A2.STRINGS[0] + #34 + ',' + #34 + A2.STRINGS[1] + #34')');
    ZQuery1.Execsql;
    ProgressBar1.Position := ProgressBar1.Position + 1;
  end;
  CloseFile(A1);
  ProgressBar1.Position := 0;
  SHOWMESSAGE(' Wczytano PLIK; + TXT ' + ' z powodzeniem !!');

typ błędu:

a1.jpg

prosze serdecznie o wszelkiego typu uwagi.

1

a kto stworzy obiekt A2 klasy TStringList? A tak BTW to genialne masz nazwy zmiennych...

0

To ja jeszcze dorzucę tak z boku radę abyś nie sklejał zapytań za pomocą stringów, a użył sparametryzowanych zapytań. Na przykład:

ZQuery.SQL.Text := 'insert into PASAZER(IMIE,NAZWISKO) values ​​(:IMIE, :NAZWISKO);'

ZQuery.ParamByName('IMIE').AsString := 'Jan';
ZQuery.ParamByName('NAZWISKO').AsString := 'Kowalski';
ZQuery.ExecSQL;

ZQuery.ParamByName('IMIE').AsString := 'Adam';
ZQuery.ParamByName('NAZWISKO').AsString := 'Abacki';
ZQuery.ExecSQL;

ZQuery.ParamByName('IMIE').AsString := 'Ania';
ZQuery.ParamByName('NAZWISKO').AsString := 'Kowalska';
ZQuery.ExecSQL;

@janbit czyż nie jest bardziej czytelniejsze?

1 użytkowników online, w tym zalogowanych: 0, gości: 1