AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi doppelter eintrag in db vergleichen
Thema durchsuchen
Ansicht
Themen-Optionen

doppelter eintrag in db vergleichen

Ein Thema von missi · begonnen am 8. Aug 2005 · letzter Beitrag vom 10. Aug 2005
 
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, 12: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
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:25 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz