Hallo .sundance.,
stimmt, "index" ist ein reserviertes Wort, da hätte ich auch drauf kommen können
Warum sollte ein
Delphi-Quellcode:
uniQuery.SQL.Text := Format('update %s set spalte1 = %s,
spalte2 = %s, ... spalteN = %s WHERE hostname = %s',[dbTable,wert1,wert2,...,wertN,QuotedString(ComputerName)]);
uniQuery.ExecSql;
komplizierte sein, als ein
Delphi-Quellcode:
uniQuery.Edit;
uniQuery.FieldByName('spalte1').AsString := wert1;
uniQuery.FieldByName('spalte2').AsString := wert2;
...
uniQuery.FieldByName('spalteN').AsString := wertN;
uniQuery.Post;
?
Querys kann man parametrisieren, schau mal nach ParamByName...
Könnte dann in etwa so aussehen:
Delphi-Quellcode:
uniQuery.SQL.Text := Format('update %s set spalte1 = :spalte1,
spalte2 = :spalt2, ... spalteN = :spalteN WHERE hostname = %s',[dbTable,QuotedString(ComputerName)]);
uniQuery.ParamByName('spalte1').AsString := wert1;
uniQuery.ParamByName('spalte2').AsString := wert2;
...
uniQuery.ParamByName('spalteN').AsString := wertN;
uniQuery.ExecSql;
Und auch hier ist dann nur ein schreibender Zugriff auf die Datenbank notwendig und nicht erst lesen und dann schreiben.