MarkX: Leeres Datenbankfeld - Fehler abfangen

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.

  1. 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 If

    Ebenfalls 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

    1. 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.

      1. 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

        1. 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.

          1. 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

            1. Moin,

              Und welchen Feldtyp hat "Feld1"?

              Es handelt sich um ein Text-Feld.

              MfG
              MarkX.