NULL-Wert aus der Datenbank abfangen!

Von: , Frage gestellt am Mi, 6. Dez 2000

Also soetwas elementares steht in wenigen Literaturen und nur 2 Zeilen darüber.

Problembeschreibung:
--------------------
in einer SELECT-Anweisung bekomme ich in einigen Spalten NULL-Werte. wie kann ich dies in meinem Java-Programm abfragen, ob die Spalte NULL-Wert enthält. Ich habe dies notgedrungenerweise über catch{} abgehandelt.
In der Literatur wird die Methode wasNull() der Klasse ResultSet angegeben. Bekomme ich nicht hin!!! Vielleicht könnt ihr mir mit einem Codebeispiel weiterhelfen!

5 Antworten zu dieser Frage

  1. Antwort von nach 2 Stunden hilfreich
    Re: NULL-Wert aus der Datenbank abfangen!

    in einer SELECT-Anweisung bekomme ich in einigen Spalten
    NULL-Werte. wie kann ich dies in meinem Java-Programm
    abfragen, ob die Spalte NULL-Wert enthält. Ich habe dies
    notgedrungenerweise über catch{} abgehandelt.
    In der Literatur wird die Methode wasNull() der Klasse
    ResultSet angegeben. Bekomme ich nicht hin!!! Vielleicht könnt
    ihr mir mit einem Codebeispiel weiterhelfen!
    Hallo!

    Das mit wasNull funkt so:
    rs.getString( "SPALTENNAME" )
    if( rs.wasNull() )
    ...

    wasNull() gibt dann zurück ob "SPALTENNAME" NULL war.

    Allerdings kriegst du auch zB mit getString() null zurück, wenn das Feld SQL NULL war, also dasselbe wäre:
    if( rs.getString( "SPALTENNAME" ) == null )
    ...

    Grüße, Robert

    • Antwort von nach 4 Stunden hilfreich
      Re^2: NULL-Wert aus der Datenbank abfangen!

      Danke Robert.
      Genau so hatte ich es probiert gehabt.
      Leider bekomme ich aber folgende Fehlermeldung:
      SQLException: [Microsoft][ODBC Driver Manager] Ung³ltiger Cursorstatus. [Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

      • Antwort von nach 6 Stunden hilfreich
        Re^3: NULL-Wert aus der Datenbank abfangen!

        Leider bekomme ich aber folgende Fehlermeldung:
        SQLException: [Microsoft][ODBC Driver Manager] Ung³ltiger
        Cursorstatus.
        Hmmm, du verwendest die JDBC/ODBC-Bridge von Sun?

        Eventuell kommt die bzw. der ODBC-Treiber dahinter mit irgendwas nicht zurecht, soll vorkommen.

        Wie schauts mit der zweiten Variante aus, direkt mit der getXXX-Methode abfragen und Return auf null prüfen?

        Grüße, Robert

        • Antwort von nach 7 Stunden hilfreich
          Re^4: NULL-Wert aus der Datenbank abfangen!

          Hmmm, du verwendest die JDBC/ODBC-Bridge von Sun?
          Ja. Ganz genau. Wie schauts mit der zweiten Variante aus, direkt mit der
          getXXX-Methode abfragen und Return auf null prüfen?
          Leider geht die 2. Variante auch nicht!

          Ich habe mir mit einer eigenen Methode Hilfe verschaffen..
          Naja, nicht ganz elegant, aber die Zeit ist knapp!

          public static boolean isNull(ResultSet _rs, int _iIndex){
          try{
          String tmp = null;
          _rs.next();

          //bei Null-Catch-Aufruf!
          tmp = _rs.getObject(_iIndex).toString();
          if (tmp == null) return true;
          return false;
          }
          catch(Exception e){
          return true;
          }
          }

          • Antwort von nach 9 Stunden hilfreich
            Re^5: NULL-Wert aus der Datenbank abfangen!

            Hmmmm, sehr seltsam. Da täte ich eher sagen, dass überhaupt kein Datensatz mehr da ist. Prüf mal immer den Rückgabewert von next() (true wenn noch ein Datensatz da ist, sonst false).

            Grüße, Robert

Keine passende Antwort gefunden? Jetzt eigene Frage stellen!