Lepší řešení #3 – uživatel může zadat neomezeně příkazů, které nevracejí výsledek.
1.1 --- a/java/sql-vyuka/src/java/cz/frantovo/sql/vyuka/dao/PiskovisteDAO.java Sat Jul 18 17:16:41 2009 +0200
1.2 +++ b/java/sql-vyuka/src/java/cz/frantovo/sql/vyuka/dao/PiskovisteDAO.java Sat Jul 18 17:28:35 2009 +0200
1.3 @@ -57,16 +57,12 @@
1.4 /**
1.5 * Ošetříme případ, kdy uživatel zadá SQL příkaz, který nevrací výsledkovou sadu.
1.6 * Typicky nastavení výchozího schématu: SET search_path = '…';
1.7 - * pokud bude pocetPokusu = 0 a první dotaz nevrátí výsledkovou sadu,
1.8 - * procházení se ukončí a uživatel neuvidí žádnou tabulku (i když další příkazy už výsledkové sady vracely).
1.9 * Poznámka: jeden „SET search_path = '…'“ se obvykle předřazuje uživatelskému SQL (viz PiskovisteDAO.xml).
1.10 - */
1.11 - int pocetPokusuBezRS = 1;
1.12 - while (ps.getMoreResults() || pocetPokusuBezRS > 0) {
1.13 - pocetPokusuBezRS--;
1.14 + */
1.15 + while (ps.getMoreResults() || ps.getUpdateCount() > -1) {
1.16 rs = ps.getResultSet();
1.17 if (rs == null) {
1.18 - /** Jedná se buď o „update count“ nebo tu už žádná další výsledková sada není. */
1.19 + /** Jedná se o „update count“. */
1.20 } else {
1.21 v.getTabulky().add(zpracujVysledek(rs));
1.22 }