Einzelnen Beitrag anzeigen

shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#8

Re: doppelter eintrag in db vergleichen

  Alt 10. Aug 2005, 13:48
Ich verwende in solche Fällen immer eine Query, die entweder einen oder keinen Datensatz zurückliefert.
Mit [TDataset].IsEmpty pürfe ich, ob schon ein Datensatz vorhanden ist.
Mit [TDataset].Append oder [TDataset].Edit füge ich einen neuen Datensatz an, oder verändere den bestehenden Datensatz.
Delphi-Quellcode:
   // dst ist eine Query mit SQL= SELECT * FROM Tabelle WHERE Serialnum=:Serialnum
   dst.close;
   dst.Parameters.ParamValues['Serialnum'] := sernr;
   dst.open;

   update := not dst.IsEmpty;

   if update then
   begin
       dst.Edit
       dst['Changecount'] := dst['Changecount'] +1;
   end
   else
   begin
       dst.Append;
       dst['Serailnum'] := sernr;
   end;

   dst['lastchange'] := now;
   dst['.....'] := ....
   dst.post;
Diese Vorgehensweise hat mehrere Vorteile:
* man braucht nicht mit INSERT und UPDATE Anweisungen zuschreiben, die manchmal 50 Parameter benötigen
* man hat Zugriff auf die alten Werte und kann damit arbeiten
kleiner Nachteil:
* es werden Daten abgefragt, die meistens gar nicht benötigt werden (aber nur ein Datensatz, macht ja nix)
Andreas
  Mit Zitat antworten Zitat