AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Fehlerbehandlung bei Datenbanken
Thema durchsuchen
Ansicht
Themen-Optionen

Fehlerbehandlung bei Datenbanken

Ein Thema von Flash68 · begonnen am 16. Apr 2012 · letzter Beitrag vom 9. Mai 2012
Antwort Antwort
Flash68

Registriert seit: 24. Apr 2006
102 Beiträge
 
Delphi XE2 Architect
 
#1

Fehlerbehandlung bei Datenbanken

  Alt 16. Apr 2012, 09:19
Hallo zusammen,

ich möchte eine Fehlerbehandlung in meine Programe einbauen die folgendermaßen aussieht:

Delphi-Quellcode:
procedure TFRM_Main.But_SpeichernClick(Sender: TObject);
begin
  try
    DM_Buecher.ADS_Buecher.Post;
    DM_Buecher.ADS_Buecher.Edit;
    setButtons(1)
  except
    DM_Buecher.ADS_Buecher.Cancel;
    DM_Buecher.ADS_Buecher.Edit;
    setButtons(1);
    MessageDlg('Es wurden nicht alle Felder ausgefüllt!',MtWarning,[mbOK],0)
  end;
end;
Allerdings wird im dem Fall das ein Feld das benötigt wird nicht ausgefüllt ist trotzdem ein neuer leerer Eintrag vorgenommen bzw. eine ID wird für den Versuch benutzt.

Kann mir jemand helfen wie ich die Fehlerbehandlung programmiere ohne das ein leerer Eintrag vorgenommen wird.

Gruß

Flash

Geändert von Flash68 (16. Apr 2012 um 10:19 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#2

AW: Fehlerbehandlung bei Datenbanken

  Alt 16. Apr 2012, 10:58
Was spricht dagegen dies so zu machen wie es seit Jahrzenten bekannt ist:
Delphi-Quellcode:
function FelderPrüfen:boolean;
begin
  if not(Feld1ok) then result:=false;
  if result then
    if not(Feld2ok) then result:=false;
  if result then
    if not(Feld3ok) then result:=false;
end;

if FelderPrüfen then speichern
else Fehlermeldung;
Du könntest natürlich auch einen Fehlercode generieren, von dem Deine Fehlernachricht und die weitere Verarbeitung abhängig sind.
Deiner Creativität sind da keine Gerenzen gesetzt.

Übrigens vor ein paar Monaten hier im Forum:
"bekannte Fehlerzustände sind keine Ausnahme"
(leider nicht von mir)

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Flash68

Registriert seit: 24. Apr 2006
102 Beiträge
 
Delphi XE2 Architect
 
#3

AW: Fehlerbehandlung bei Datenbanken

  Alt 18. Apr 2012, 09:22
Das hat mir schon mal gut weiter geholfen.

Allerdings weiß ich nicht wie ich überprüfe ob in einem DBEdit-Feld Text während der Append-Phase eingegeben wurde oder nicht.

Zusätzlich müsste ich auch noch prüfen ob in einer DBLookupCombobox ein Wert ausgewählt wurde.

Geändert von Flash68 (18. Apr 2012 um 09:47 Uhr)
  Mit Zitat antworten Zitat
pmoegenb

Registriert seit: 24. Aug 2006
Ort: Aidlingen
155 Beiträge
 
Delphi XE6 Professional
 
#4

AW: Fehlerbehandlung bei Datenbanken

  Alt 18. Apr 2012, 11:46
Entweder bei Post, im Ereignis BeforePost z. B.:

If FieldByName('Field1').IsNull oder durch Abfrage der Länge der Eingabe z. B.:

If Length(DBEdit1.Text) = 0
Peter Mögenburg
Gruß

Peter
  Mit Zitat antworten Zitat
Flash68

Registriert seit: 24. Apr 2006
102 Beiträge
 
Delphi XE2 Architect
 
#5

AW: Fehlerbehandlung bei Datenbanken

  Alt 18. Apr 2012, 12:06
Kann das erste denn funktionieren?

Werden denn die Daten nicht erst nach dem post übertragen?
  Mit Zitat antworten Zitat
Flash68

Registriert seit: 24. Apr 2006
102 Beiträge
 
Delphi XE2 Architect
 
#6

AW: Fehlerbehandlung bei Datenbanken

  Alt 9. Mai 2012, 15:47
Ich hab jetzt die lösung zw. es zum laufen gebracht.
Delphi-Quellcode:
procedure TDM_Buecher.ADS_BuecherBeforePost(DataSet: TDataSet);
begin
  If trim(FRM_Main.dbe_Titel.text) ='then raise Exception.Create('Titel muss angegeben werden'); {abort}
end;
Allerding müsste ich jetzt noch eine DBLookupComboBox abfragen, kann mir jemand sagen was ich überprüfen muß um festzustellen das aus der zweiten Tabelle was ausgewählt wurde?
  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 19:44 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