Der allgemeine execute() Aufruf
Erzeugt ein komplexes SQL-Kommando mehrere Ergebnisse oder ist unbekannt, von welcher Art das Ergebnis
eines SQL-Kommandos ist, weil etwa ein Benutzer einer graphischen Oberfläche SQL-Statements eingibt,
so sind executeUpdate() und executeQuery() nicht brauchbar. In dieser
Situation kann man die Methode execute(String sql) verwenden. Sie verarbeitet jedes SQL-Kommando.
Es ist allerdings ziemlich aufwendig festzustellen, welche Ergebnisse dann anliegen. Um zu untersuchen,
welche Ergebnisse anliegen und wie man sie abholt benötigt man zusätzlich die folgenden drei Methoden
(siehe auch die Kurzbeschreibung in der Tabelle der vorigen Seite).
- int getUpdateCount()
- ResultSet getResultSet()
- boolean getMoreResults()
Das folgende Diagramm zeigt an, wie man diese Methoden verwendet und in welcher Reihenfolge man diese
Methoden verwenden muß, um alle Ergebnisse zu bekommen. Dabei ist zu beachten, daß weder
getUpdateCount() noch getResultSet() zweimal direkt hintereinander aufgerufen werden dürfen.
Es muß immer ein Aufruf von getMoreResults() eingeschoben werden. Nach der Beschreibung in der API
terminiert der Algorithmus, wenn gilt:
((stmt.getMoreResults() == false) && (stmt.getUpdateCount() == -1))
|