Einzelnen Beitrag anzeigen

Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#14

Re: Überprüfen von ID-Nummern

  Alt 10. Feb 2005, 21:42
Hallo Lombi,

da du mich noch einmal auf diesen Thread angesprochen hast, möchte ich dir hier noch einmal helfen. Ich schließe mich den Ausführungen von Tharon an. Du solltest die Prüfung in der BeforePost Methode des TTable Objektes durchführen. Ich glaube es geht dir darum, wie man denn jetzt prüft, ob ein Datensatz mit der eingegebenen AdressenIDNr existiert. Du benötigst für die Überprüfung ein weiteres DB Objekt. Es wäre zwar grundsätzlich möglich zu versuchen, den Datensatz abzuspeichern und auf einen Fehler zu reagieren. Wie gesagt, ich würde die Prüfung aber Vor dem Post also BeforePost durchzuführen. Dazu nimmst du entweder ein zweites TTable Objekt, das auf dieselbe Tabelle zeigt. Dort suchst du den Datensatz mit der AdressenIdNr, die im dem DBEdit Feld steht und zwar entweder über FindKey (sofern die AdressIdNr ein Schlüsselfeld ist) oder aber über Locate. Die beiden Funktionen werden recht gut in der OH beschrieben. Alternativ nutzt du ein TQuery Objekt und speicherst dort die Abfrage (die Tabelle heiße Adressen):

SELECT * FROM Adressen WHERE AdressenIdNr = :adr Durch den Doppelpunkt vor adr wird der Bezeichner adr zu einem Parameter, den du mit ParamByName ansprechen kannst (die Query heiße qryExistsAdr):

Delphi-Quellcode:
// ich nehme einmal an das DBEdit Feld mit der AdressID heißt dbEditAdr
qryExistsAdr.Close;
qryExistsAdr.ParamByName('adr').AsString := dbEditAdr.Text;
qryExistsAdr.Open;
if qryExistsAdr.RecordCount > 0 then
begin
  // Datensatz existiert schon
   // Hier vielleicht eine Fehlermeldung ausgeben
   ABORT; // Speicherversuch abbrechen
end;
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat