hi,
Zitat von
Ati:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var nr:string;
begin
nr:=dbgrid1.DataSource.DataSet.FieldByName('ID').AsString;
showmessage(nr);
qrmain.SQL.text:='UPDATE Korrekturen SET Status=''Erledigt'' = ' + nr +';' ;
qrmain.ExecSQL;
trmain.Commit;
end;
nicht persönlich nehmen, aber was soll das für ein
SQL-Statement sein?
UPDATE Korrekturen SET Status='Erledigt' = 1;
Das kommt bei Dir raus. Wäre sicherlich auch sinnvoll die '' durch ein QueotedStr zu ersetzen, am besten aber gleich mit Parameter arbeiten:
Delphi-Quellcode:
qrmain.SQL.text:='UPDATE Korrekturen SET Status=:Status where ID=:ID;';
....
procedure TForm1.Button1Click(Sender: TObject);
var nr:string;
begin
nr:=dbgrid1.DataSource.DataSet.FieldByName('ID').AsString;
showmessage(nr);
qrMain.Close;
qrMain.ParamByName('Status').AsString:='Erledigt';
qrMain.ParamByName('ID').AsString:=nr;
qrmain.ExecSQL;
trmain.Commit;
end;
die "qrMain.ParamByName" habe ich mal geraten, da ich schon lange nichts mehr mit Zeos gemacht habe.
Das trMain.Commit halte ich persönlich für problematisch, da beim nächsten Button1Click die Fehlermeldung kommt, dass die Transaktion nicht gestartet ist. Zudem solltest Du das explizite commit nur dann machen, wenn du die Transaktion auch selbst explizit gestartet hast (trMain.StartTransaction).
Grüße
Lemmy