Behandeln von Datenbankfehlern
Datenbankfehler (auch "Modulfehler" genannt) treten bei Laufzeitfehlern im Ereigniscode auf Datensatzebene auf. Dies ist z. B. der Fall, wenn ein Benutzer versucht, einen NULL-Wert in einem Feld zu speichern, das keine NULL-Werte zulässt.
Tritt ein Datenbankfehler auf, gibt das Datenbankmodul, das auf den Fehler stößt, normalerweise eine Fehlermeldung aus. Die genaue Ursache einer Fehlermeldung hängt jedoch davon ab, wie auf die Datenbank zugegriffen wird (die Fehlermeldungen, die ein Remotedatenbank-Server wie Microsoft SQL Server ausgibt, werden sich aller Wahrscheinlichkeit nach von den Fehlermeldungen, die eine lokale Visual FoxPro-Datenbank bei einem Datenbankfehler ausgibt, unterscheiden).
Ferner sind Fehler auf Modulebene häufig äußerst generisch, da das Datenbankmodul über keinerlei Informationen über den Kontext, in dem ein Datensatz aktualisiert wird, verfügt. Daraus folgt, dass die durch ein Datenbankmodul ausgegebenen Fehlermeldungen für den eigentlichen Benutzer einer Visual FoxPro-Anwendung häufig nicht sehr nützlich sind.
Um Datenbankfehler anwendungsbezogen zu behandeln, können Sie mit dem CREATE TRIGGER-Befehl einen Trigger erstellen. Dieser Trigger wird ausgelöst, wenn versucht wird, einen Datensatz zu aktualisieren (Löschen, Einfügen oder Aktualisieren). Dieser benutzerdefinierte Trigger kann dann auf anwendungsspezifische Fehlerbedingungen achten und diese ausgeben.
Wenn Sie sich dazu entschließen, Datenbankfehler mit Triggern zu behandeln, sollten Sie die Zwischenspeicherung aktivieren. Auf diese Weise wird bei einer Aktualisierung eines Datensatzes zwar der Trigger ausgelöst, der Datensatz jedoch nicht direkt zur zugrunde liegenden Datenbank gesendet. Sie vermeiden dadurch die mögliche Ausgabe von zwei Fehlermeldungen: eine durch den Trigger und die andere durch das zugrunde liegende Datenbankmodul.
So erstellen Sie benutzerdefinierte Fehlermeldungen unter Verwendung von Triggern
- Geben Sie innerhalb einer benutzerdefinierten Funktion oder gespeicherten Prozedur den gewünschten Text der Fehlermeldung ein.
- Aktivieren Sie mit der CURSORSETPROP( )-Funktion die Zwischenspeicherung, um Ihren Fehlermeldungstext anzuzeigen. Ist das Zwischenspeichern deaktiviert, werden dem Benutzer beide Fehlermeldungen (die des Triggers und die des Datenbankmoduls) angezeigt.
Siehe auch
Verweisen auf mehrere Datenbanken | Verwalten von Datenbanken | Gültigkeitsprüfung einer Datenbank | Erstellen von Datenbanken | Gültigkeitsprüfung einer Datenbank | Arbeiten mit Datenbanken