Changeset 51:bc821c6d090c
- Timestamp:
- 07/18/09 17:16:41 (15 years ago)
- Author:
- František Kučera <franta-hg@…>
- Branch:
- default
- Message:
-
Oprava #3 – uživatel může zadat příkaz, který nevrací výsledkovou sadu (typicky nastavení „search_path“), dříve se nezobrazovaly následné výsledky (tabulky) a proces procházení skončil.
Teď může uživatel zadar jeden příkaz, který nevrací výsledek a výsledky (tabulky) následujících dotazů se mu zobrazí správně.
- Files:
-
Legend:
- Unmodified
- Added
- Removed
-
r44
|
r51
|
|
55 | 55 | } |
56 | 56 | |
57 | | /** TODO: ošetřit případ, kdy vykonáme dva příkazy bez výsledkové sady a třetí příkaz ji už má (teď se nezobrazí výsledná tabulka). */ |
58 | | while (ps.getMoreResults()) { |
| 57 | /** |
| 58 | * Ošetříme případ, kdy uživatel zadá SQL příkaz, který nevrací výsledkovou sadu. |
| 59 | * Typicky nastavení výchozího schématu: SET search_path = '…'; |
| 60 | * pokud bude pocetPokusu = 0 a první dotaz nevrátí výsledkovou sadu, |
| 61 | * procházení se ukončí a uživatel neuvidí žádnou tabulku (i když další příkazy už výsledkové sady vracely). |
| 62 | * Poznámka: jeden „SET search_path = '…'“ se obvykle předřazuje uživatelskému SQL (viz PiskovisteDAO.xml). |
| 63 | */ |
| 64 | int pocetPokusuBezRS = 1; |
| 65 | while (ps.getMoreResults() || pocetPokusuBezRS > 0) { |
| 66 | pocetPokusuBezRS--; |
59 | 67 | rs = ps.getResultSet(); |
60 | | v.getTabulky().add(zpracujVysledek(rs)); |
| 68 | if (rs == null) { |
| 69 | /** Jedná se buď o „update count“ nebo tu už žádná další výsledková sada není. */ |
| 70 | } else { |
| 71 | v.getTabulky().add(zpracujVysledek(rs)); |
| 72 | } |
61 | 73 | } |
62 | 74 | long dobaProvadeni = System.currentTimeMillis() - casPred; |