Leeres Datenbankfeld - Fehler abfangen
MarkX
- asp.net
0 Viennamade0 MarkX0 Frank (no reg)0 MarkX0 Viennamade0 MarkX
Moin,
folgendes Problem: mehrere Felder eines Datensatzes aus einer Access-Datenbank werden abgefragt. Bei leeren Text-Feldern liefert mir das Script hartnäckig folgende Fehlermeldung:
Abfangbarer (C0000005) Fehler in einem externen Objekt. Das Skript kann nicht ausgeführt werden.
Ich habe versucht es folgendermaßen abzufangen:
If Not IsNull(rs("Feld1")) Then
Response.Write rs("Feld1")
End If
gleiches Ergebnis: Die Fehlermeldung kommt trotzdem.
Dann habe ich folgendes versucht:
If Not IsEmpty(rs("Feld1")) Then
Response.Write rs("Feld1")
End If
Ebenfalls kein Erfolg. Sobald das Feld Text enthält funktioniert die Abfrage einwandfrei.
Wie kann ich den Fehler abfangen?
MfG
MarkX.
Hallo!
Ich habe versucht es folgendermaßen abzufangen:
If Not IsNull(rs("Feld1")) Then
Response.Write rs("Feld1")
End If
gleiches Ergebnis: Die Fehlermeldung kommt trotzdem.
Dann habe ich folgendes versucht:If Not IsEmpty(rs("Feld1")) Then
Response.Write rs("Feld1")
End IfEbenfalls kein Erfolg. Sobald das Feld Text enthält funktioniert die Abfrage einwandfrei.
Vielleicht hängt es mit den Felddefinitionen zusammen? Probiermal einen Stringvergleich mit "" (strcomp) oder eine If-Bedingung auf die Länge des strings (strlen).
Wahrscheinlich ist es eine Marotte von mir, aber in solchen Fällen verlasse ich mich nicht auf die Default-Eigenschaften und schreibe rs("bla").value.
Beste Grüße
Viennamade
Moin,
Vielleicht hängt es mit den Felddefinitionen zusammen? Probiermal einen Stringvergleich mit "" (strcomp) oder eine If-Bedingung auf die Länge des strings (strlen).
Wahrscheinlich ist es eine Marotte von mir, aber in solchen Fällen verlasse ich mich nicht auf die Default-Eigenschaften und schreibe rs("bla").value.
vielen Dank erstmal für den Tip. Ich habe eine merkwürdig einfache Lösung gefunden: Response.Write CStr(rs("Feld1"))
Dies produziert keine Fehlermeldung und zeigt mir, wie gewünscht, einfach nichts an.
MfG
MarkX.
Hi,
du solltest nicht auf IsEmpty() sondern auf IsNull() prüfen, da das
Feld in der DB in deinem Fall wahrscheinlich NULL ist.
CStr konvertiert NULL zu einem leeren String.
Ciao, Frank
Moin,
du solltest nicht auf IsEmpty() sondern auf IsNull() prüfen, da das
Feld in der DB in deinem Fall wahrscheinlich NULL ist.CStr konvertiert NULL zu einem leeren String.
Das Prüfen auf IsNull brachte ja die Fehlermeldung. Keine Ahnung aus welchem Grund.
Der leere String, der durch die Konvertierung mit CStr entsteht, ist ja genau das was ich wollte.
MfG
MarkX.
Hallo!
Das Prüfen auf IsNull brachte ja die Fehlermeldung. Keine Ahnung aus welchem Grund.
Der leere String, der durch die Konvertierung mit CStr entsteht, ist ja genau das was ich wollte.
Und welchen Feldtyp hat "Feld1"?
Beste Grüße
Viennamade
Moin,
Und welchen Feldtyp hat "Feld1"?
Es handelt sich um ein Text-Feld.
MfG
MarkX.