Einzelnen Beitrag anzeigen

Lemmy

Registriert seit: 8. Jun 2002
Ort: Berglen
2.366 Beiträge
 
Delphi 10.3 Rio
 
#6

Re: Update funktioniert nicht

  Alt 2. Aug 2006, 08:13
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
  Mit Zitat antworten Zitat