Bei Datenbanken(z.B Paradox), deren Felder Gültigkeitsprüfungen unterliegen (z.B Min, Max, ...) und die durch Delphi angesprochen werden, läuft Delphi stets auf eine Exception, wenn die Werte nicht stimmen. Was mach ich falsch???
Announcement
Collapse
No announcement yet.
Gültigkeitsprüfung von Feldern durch Delphi
Collapse
X
-
Hallo,
wenn die Gültigkeitsprüfungen direkt in der Paradox-Tabelle (siehe <i>Datenbankoberfläche | Tools | Tabellenoperationen | Strukturinfo | Gültigkeitsprüfungen</i>) abgelegt wurden, löst die BDE ein Veto aus, wenn der Anwender einen "illegalen" Wert eintragen möchte. Wird das Programm direkt aus Delphi heraus gestartet, hält der integrierte Debugger an dieser Stelle an, d.h. das BDE-Veto wird in eine "harmlose" Exception übersetzt, so dass Delphi an dieser Stelle die Ausführung für das eventuell gewollte Debuggen anhält (dieses Verhalten kann jedoch deaktiviert werden). Wird das Programm <b>nicht</b> aus Delphi heraus gestartet, sieht der Anwender nur die Hinweismeldung über die fehlgeschlagene Gültigkeitsprüfung. Der Sinn einer festen Gültigkeitsprüfung liegt ja gerade darin, dass dieser "falsche" Datensatz nicht erfolgreich abgespeichert werden darf
-
Merci,
für den Kommentar, aber in der Tat heisst das doch, dass jede Gültigkeitsprüfung in Delphi durch eine exeption Procedure abgefangen werden muss. Das ist ja recht umständlich im Hinblick auf etwaige Änderungen in der Datenbankstruktur oder beim Umstieg auf SQL
Comment
-
Hallo,
nein - denn das Programm bleibt nur dann "stehen", wenn es aus der Delphi-IDE heraus gestartet wird und im Optionen-Dialog das Anhalten beim einer Exception nicht abgewählt wurde. Wird das Programm regulär als EXE gestaret, erhält der Anwender nur eine Fehlermeldung. Wenn sogar das unterdrückt bzw. in anderer Form angezeigt werden soll, kann man einen globalen Exception-Handler mit dieser Aufgabe betrauen. Ein Beispiel dafür ist in der Delphi-Hilfe zu TApplication zu finden
Comment
Comment