wie kann ich den Fehlermeldungen von ASP abfangen, oder besser in einer schöneren Form ausgeben. Beispiel:
Ich habe eine Tabelle die Ihre Daten aus einer Datenbank holt. Diese Datenbank hat eine Eingabepflicht (also beim hinzufügen von neuen Daten, dürfen keine Felder leer gelasen werden. Wenn man dies trozdem tut, bekommt man eine hässliche Fehlermeldung:
**Microsoft OLE DB Provider for ODBC Drivers-Fehler ‚80040e14‘
[Microsoft][ODBC driver for Oracle][Oracle]ORA-01400: Einfügen von NULL in („QSVA“.„QSVANR“) nicht möglich
sendqsva.asp, Zeile 24**
Wie kann ich den so eine Fehlermeldung abfangen und gegen eine schönere (z.B. Bitte füllen Sie ALLE Felder aus) ersetzen.
ersteinmal danke für Deine schnelle Hilfe. Ich habe deinen Code mal ausgeführt und eine Liste der bekannten Fehler bekommen. Leider ist mein Fehler (‚80040e14‘) nicht dabei. Ich nehme an das dies daran liegt, das dies keine Fehlermeldung von ASP sondern eine Fehlermeldung der Datenbank (ORACLE) ist. Hier nocheinmal die komplette Fehlermeldung:
**Microsoft OLE DB Provider for ODBC Drivers-Fehler ‚80040e14‘
[Microsoft][ODBC driver for Oracle][Oracle]ORA-01400: Einfügen von NULL in („JETSCHMA“.„QSVA“.„QSVANR“) nicht möglich
ich denke Du hast mich da nicht richtig verstanden. Es ist vollkommen korrekt das eine Fehlermeldung kommt.
Ich versuche Dir mal das „Programm“ zu erklären.
Es einer Datenbank (QSVA) wird der Inhalt ausgelesen. In dieser Datenbank befinden sich 3 Spalten. QSVA-NR, Thema, Link.
Wenn man nun einen Eintrag hinzufügen möchte, hat man hierfür eini Formular mit dem oben genannten Feldern.
Damit keine Felder leer gelassen werden können, habe ich dies in ORACLE eingestellt. Also wenn man alle Felder ausfüllt funktioniert es prima. Wenn man ein Feld ausläßt, kommt eine Fehlermeldung. Diese soll auch kommen, nur ich würde diese gerne deutlicher machen, da die vorhandene Fehlermeldung sehr unübersichtlich ist, und die Benutzer verwiert.
Ich hoffe Du kannst das jetzt nachvolziehen. Hast Du vielleicht einen Lösungsvorschlag der es ermöglicht diese Fehlermeldung „auszutauschen“?
voila! - schon hast du den fehlercode, z.b. 998877.
dann kannst du den gezielt herauspicken:
on error resume next
conn.execute(„Insert…“)
select case err.number
case „0“: Response.write „Kein Fehler!“
case „998877“: Response.write „Mein schöner kleiner Fehler!“
case else: Response.Write „Irgendein anderer Fehler!“
end select
Aber…
ich würde trotzdem im script bereits überprüfen, ob alle felder eingegeben wurden, weil’s einfach schneller geht (da kannst du uU auch gleich eine Plausibilitätsprüfung dazuhängen…)