Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Post abbrechen - je nach Inhalt des TDBEdits (dynamisch) (https://www.delphipraxis.net/99008-post-abbrechen-je-nach-inhalt-des-tdbedits-dynamisch.html)

Reinhardtinho 5. Sep 2007 14:18

Datenbank: MS SQL Server 2000 • Zugriff über: SDAC-Komponenten

Post abbrechen - je nach Inhalt des TDBEdits (dynamisch)
 
Hi zusammen,

Habe mal wieder ein Datenbank-Problem.

Habe auf meiner Form 7 DBEdit-Controls, der Einfachheit halber DBEdit1 bis DbEdit7 gennant.

In den DBEdit-Controls dürfen nur Integer-Werte stehen und zwar aufsteigend.

Also StrToInt(DBEdit1.Text) < StrToInt(DBEdit2.Text) < ... < StrToInt(DBEdit3.Text), die Felder dürfen aber auch ganz leer sein.

Jetzt geht es darum, wenn ich in ein Feld einen falschen Zahlenwert eingegeben habe und danach den Datensatz in die Datenbank speichern möchte, soll der Inhalt des fokusierten DBEdits überprüft werden, ob es auch zulässig ist.

Jetzt ist mein Problem, wie und wo mache ich das?

Delphi-Quellcode:
procedure TForm_Erfassung.Table_ArtikelBeforePost(DataSet: TDataSet);
begin
  ...
end;
Ich meine, dies sei das richtige Ereignis, um das abzufangen, aber dies hier:
Delphi-Quellcode:
(Sender as TDBEdit).Tag
geht dann halt leider nicht (so habe ich das in anderen Methoden schon gelöst).



Also genauer 2 Fragen dazu:

1) Wie spreche ich die DBEdits dynamisch an?
2) Wie breche ich den Post zur Datenbank ab?


Vielen Dank an alle die sich den Kopf zerbrechen werden.

MFG Lorenz

shmia 5. Sep 2007 17:11

Re: Post abbrechen - je nach Inhalt des TDBEdits (dynamisch)
 
Vergiss die Controls.
Plausiprüfungen müssen anhand des Datasets stattfinden.
Delphi-Quellcode:
procedure TForm_Erfassung.Table_ArtikelBeforePost(DataSet: TDataSet);
begin
  // Beispiel:
  if DataSet.FieldByName('StartWert').AsInteger >= DataSet.FieldByName('EndWert').AsInteger then
    raise Exception.Create('Startwert muss kleiner als Endwert sein');

  if DataSet.FieldByName('Anzahl').IsEmpty then
    raise Exception.Create('Anzahl muss angegeben werden');
 
  if not DataSet.FieldByName('P1').IsEmpty and DataSet.FieldByName('P2').IsEmpty then
    raise Exception.Create('Wenn "P1" vorgegeben, dann muss auch "P2" angegeben werden');
end;
Der Benutzer erhält evtl. eine der obigen Exceptions angezeigt und kann dann
entweder: abbrechen oder korrigieren und erneut speichern

Reinhardtinho 6. Sep 2007 08:36

Re: Post abbrechen - je nach Inhalt des TDBEdits (dynamisch)
 
Allerbesten Dank :thumb:.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:04 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz