Weitere aktuelle Java-Titel finden Sie bei dpunkt.
 Inhaltsverzeichnis   Auf Ebene Zurück   Seite Zurück   Seite Vor   Auf Ebene Vor   Eine Ebene höher   Index


18.2.8

SQL-Warnungen


Bei der Durchführung einiger Operationen können vom JDBC-Treiber Warnungen generiert werden. Warnungen werden dann erzeugt, wenn die Durchführung einer Aufgabe nicht ganz den spezifizierten Anforderungen entspricht, es aber keinen Grund dafür gibt, eine SQLException zu erzeugen, da die Ursache nicht so gravierend ist. In der Regel wird vom Treiber eine Warnung erzeugt, wenn vom Treiber für die Durchführung einer Operation intern eine adäquate Alternative gewählt wird. Bei welchen Operationen genau Warnungen erzeugt werden, hängt vom verwendeten JDBC-Treiber ab. Der Oracle JDBC-Treiber erzeugt z. B. Warnungen, wenn eine Ergebnismenge eines Typs anfordert wird, der inkompatibel zur ausgeführten SQL-Anweisung ist (siehe Abschnitt 18.6.2).

Warnungen werden in der Java-Anwendung nicht über eine try/catch-Klausel abgefangen, sondern sie müssen explizit abgerufen werden. Dies geschieht durch Aufruf der Methode getWarnings(). Diese Methode ist in den Schnittstellen Connection, Statement, CallableStatement sowie PreparedStatement definiert. Warnungen, die das Erzeugen einer inkompatiblen Ergebnismenge betreffen, können über die Statement-Exemplare abgerufen werden:
  Connection con;
  ...
  Statement stmt = con.createStatement();
  // Hier Ausführen von SQL
  ...
  // Prüfen, ob Warnungen vorhanden sind
  SQLWarning warnung = stmt.getWarnings();
  // Gibt es noch Warnungen?
  while(warnung != null) {
    // Ausgabe von Fehlermeldung und Fehlercodes
    System.out.println(warnung.getMessage());
    System.out.println("ANSI-92 Code: "+warnung.getSQLState());
    System.out.println("Oracle  Code: "+warnung.getErrorCode());  
    // Nächste Warnung abrufen.
    warnung = warnung.getNextWarning();
  }
  ...
getWarnings() liefert ein Exemplar der Klasse SQLWarning zurück. SQLWarning enthält dieselben Methoden zum Abfragen von Fehlermeldungen und Fehlercodes wie die Klasse SQLException auch. Genau wie bei SQL Exceptions können auch mehrere SQL-Warnungen verkettet vom Treiber zurückgeliefert werden. Bei SQL-Warnungen verwendet man die Methode getNextWarning(), die jeweils das nächste SQLWarning-Exemplar zurückliefert oder null, wenn bereits alle Warnungen abgerufen wurden.

Warnungen bleiben solange gesetzt, bis eine neue SQL-Anweisung ausgeführt wird, oder sie explizit mit der Methode clearWarnings() gelöscht werden.


 Inhaltsverzeichnis   Auf Ebene Zurück   Seite Zurück   Seite Vor   Auf Ebene Vor   Eine Ebene höher   Index

Copyright © 2002 dpunkt.Verlag, Heidelberg. Alle Rechte vorbehalten.