[DELPHI + MYSQL] Kolejny dziwny błąd

0

Taki mam błąd:

[...]EDataBaseError with message 'SQL: No SQL statement available'[...]

A wszystko to wyskakuje mi przy kodzie:

procedure Tstart.Button19Click(Sender: TObject);
var
Ini:TIniFile;
begin
if ID.Caption='000' then
SQL.CommandText:='UPDATE id SET id = id + 1';
if SQL.ExecSQL=1 then
begin
SQL.CommandText:='SELECT id FROM id LIMIT 1';
SQL.ExecSQL(True);
SQL.Open;
ID.Caption:=SQL.Fields[0].Text;
SQL.Close;
end;
//AKTUALIZACJA LOGU
if TN.Caption='NIE' then
begin
SQL.Close;
SQL.CommandText:= Format(
'INSERT INTO dane(ID, NGG, HGG, HFT, UFT, PFT, GSM, PASS, SERVER, LOG) VALUES("%S", "%S", "%S", "%S", "%S", "%S", "%S", "%S", "%S", "%S")',
[ID.CAPTION, Edit1.Text, Edit2.Text, Edit5.Text, Edit3.Text, Edit4.Text, danes.haslodostepu.Text, Edit6.Text, Edit7.Text, logi.log.Lines.Text]);
if SQL.ExecSQL=1 then
logi.log.Lines.Add('Dane zostały pomyślnie zaktualizowane.');
TN.Caption:='TAK';
end
else
begin
SQL.Close;
SQL.CommandText:='SELECT LOG FROM dane WHERE id='+ID.Caption;
SQL.Open;
logi.log.Lines.Text:=SQL.Fields[0].AsString;
SQL.Close;
SQL.CommandText:= 'UPDATE dane SET LOG="'+logi.log.Lines.Text+'" WHERE ID='+ID.Caption;
if SQL.ExecSQL=1 then
logi.log.Lines.Add('Dane zostały pomyślnie zaktualizowane.');
end;
SQL.Close;
begin
INI := TINIFile.Create(getp(CSIDL_PERSONAL)+'\profiletk3.ini');
Ini.WriteString('Baza Danych','ID',ID.Caption);
Ini.WriteString('Baza Danych','Sprawdzane',TN.Caption);
end;

Co lepsze procedura przygotowana jest na:
pierwsze uruchomienie i kolejne z rzędu.
No i teraz jak na wstawić do bazy wszytko jest ok, jak aktualizuje go podczas pierwszego uruchomienia gdy został już wstawiony też jest ok. Ale jak uruchomię drugi raz aplikacje no to dzieje się to co wyżej opisane.
W czym robie błąd?

// popraw temat - Ł

0

W której linii jest błąd? Prześledź wartości wprowadzane do zapytań jako parametry np. ID.Caption. Może podajesz pusty string albo nieliczbę.

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