AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Post abbrechen - je nach Inhalt des TDBEdits (dynamisch)
Thema durchsuchen
Ansicht
Themen-Optionen

Post abbrechen - je nach Inhalt des TDBEdits (dynamisch)

Ein Thema von Reinhardtinho · begonnen am 5. Sep 2007 · letzter Beitrag vom 6. Sep 2007
Antwort Antwort
Benutzerbild von Reinhardtinho
Reinhardtinho

Registriert seit: 26. Feb 2007
411 Beiträge
 
Delphi 5 Enterprise
 
#1

Post abbrechen - je nach Inhalt des TDBEdits (dynamisch)

  Alt 5. Sep 2007, 14:18
Datenbank: MS SQL Server 2000 • Zugriff über: SDAC-Komponenten
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:
(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
Ich habe viel von meinem Geld für Alkohol, Weiber und schnelle Autos ausgegeben ... Den Rest habe ich einfach verpraßt.

George Best - 22.05.1946 - 25.11.2005 - nordirischer Fußballspieler
  Mit Zitat antworten Zitat
shmia

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

Re: Post abbrechen - je nach Inhalt des TDBEdits (dynamisch)

  Alt 5. Sep 2007, 17:11
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
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von Reinhardtinho
Reinhardtinho

Registriert seit: 26. Feb 2007
411 Beiträge
 
Delphi 5 Enterprise
 
#3

Re: Post abbrechen - je nach Inhalt des TDBEdits (dynamisch)

  Alt 6. Sep 2007, 08:36
Allerbesten Dank .
Ich habe viel von meinem Geld für Alkohol, Weiber und schnelle Autos ausgegeben ... Den Rest habe ich einfach verpraßt.

George Best - 22.05.1946 - 25.11.2005 - nordirischer Fußballspieler
  Mit Zitat antworten Zitat
Antwort Antwort


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 13:11 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