Einzelnen Beitrag anzeigen

Benutzerbild von sx2008
sx2008

Registriert seit: 16. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#4

AW: Update & Insert getrennt manuell ausführen oder eine Stored Procedure ?

  Alt 15. Feb 2013, 13:24
Wenn es nicht auf maximale Geschwindigkeit ankommt, dann kann man deine Anforderung sehr flexibel mit Delphi-Code lösen:
Delphi-Quellcode:
query.SQL.Tet := 'SELECT * FROM Tabelle WHERE keyfeld=:keyfeld';
query.parameters.ParamValues['keyfeld'] := ...; // muss ggf. an Zugriffskomponente angepasst werden
query.Open;
if query.IsEmpty then
begin
  // neuen Datensatz einfügen
  query.Append;
  // hier alle Felder beschreiben, die nur beim INSERT befüllt werden müssen
  query['keyfeld'] := ...;
  query['Spalte7'] := ...;
end
else
begin
  // bestehenden Datensatz ändern
  query.Edit;
  // hier alle Felder beschreiben, die nur beim UPDATE geändert werden müssen
  query['AnzahlModifikationen'] := query['AnzahlModifikationen'] + 1;
end;

// hier alle Felder befüllen, die sowohl beim INSERT als auch beim UPDATE geschrieben werden
query['Feld1'] := ...;
query['Feld2'] := ...;
query.Post; // Datensatz schreiben, im Hintergrund wird ein INSERT oder UPDATE generiert und abgeschickt
  Mit Zitat antworten Zitat