Changeset 17:08cd160ec1c6
- Timestamp:
- 05/29/09 04:09:58 (16 years ago)
- Author:
- František Kučera <franta-hg@…>
- Branch:
- default
- Message:
-
Podpora vícenásobných výsledkových sad (více dotazů oddělených středníkem). Omezení zobrazované historie na 20 posledních.
- Location:
- java/sql-vyuka/src/java/cz/frantovo/sql/vyuka/dao
- Files:
-
Legend:
- Unmodified
- Added
- Removed
-
|
r16
|
r17
|
|
| 4 | 4 | <entry key="NACTI"> |
| 5 | 5 | <![CDATA[ |
| 6 | | SELECT * FROM historie WHERE id_sezeni = ? |
| | 6 | SELECT * |
| | 7 | FROM historie |
| | 8 | WHERE id_sezeni = ? |
| | 9 | ORDER BY id DESC |
| | 10 | LIMIT 20 |
| 7 | 11 | ]]> |
| 8 | 12 | </entry> |
-
|
r16
|
r17
|
|
| 26 | 26 | if (historie.ulozPrikaz(sql, uzivatel)) { |
| 27 | 27 | |
| 28 | | |
| 29 | | |
| 30 | | |
| 31 | | |
| 32 | | |
| 33 | | Tabulka t = new Tabulka(); |
| 34 | | |
| 35 | | |
| 36 | | |
| 37 | 28 | Connection db = getSpojeni(DATABAZE.PISKOVISTE); |
| 38 | 29 | if (db == null) { |
| … |
… |
|
| 43 | 34 | try { |
| 44 | 35 | ps = db.prepareStatement(sql); |
| 45 | | rs = ps.executeQuery(); |
| | 36 | boolean isRS = ps.execute(); |
| 46 | 37 | |
| 47 | | int pocetSloupecku = rs.getMetaData().getColumnCount(); |
| 48 | | String[] zahlavi = new String[pocetSloupecku]; |
| 49 | | t.setZahlavi(zahlavi); |
| 50 | | for (int i = 0; i < pocetSloupecku; i++) { |
| 51 | | zahlavi[i] = rs.getMetaData().getColumnName(i + 1); |
| 52 | | } |
| | 38 | if (isRS) { |
| | 39 | rs = ps.getResultSet(); |
| | 40 | v.getTabulky().add(zpracujVysledek(rs)); |
| 53 | 41 | |
| 54 | | while (rs.next()) { |
| 55 | | Object[] hodnoty = new Object[pocetSloupecku]; |
| 56 | | for (int i = 0; i < pocetSloupecku; i++) { |
| 57 | | hodnoty[i] = rs.getObject(i + 1); |
| | 42 | while (ps.getMoreResults()) { |
| | 43 | rs = ps.getResultSet(); |
| | 44 | v.getTabulky().add(zpracujVysledek(rs)); |
| 58 | 45 | } |
| 59 | | t.getHodnoty().add(hodnoty); |
| 60 | | } |
| 61 | | |
| 62 | | if (t.getHodnoty().size() > 0 && pocetSloupecku > 0) { |
| 63 | | |
| 64 | | v.getTabulky().add(t); |
| 65 | 46 | } else { |
| 66 | | v.getHlasky().add(new Hlaska("SQL příkaz byl proveden.", Typ.OK)); |
| | 47 | /** TODO: zobrazit počet aktualizovaných? */ |
| | 48 | v.getHlasky().add(new Hlaska("SQL příkaz byl proveden, ale nevrátil žádná data.", Typ.Varovani)); |
| 67 | 49 | } |
| 68 | 50 | |
| … |
… |
|
| 80 | 62 | v.getHlasky().add(new Hlaska(tipy.getTip(), Typ.Tip, false)); |
| 81 | 63 | |
| 82 | | |
| 83 | | |
| 84 | | |
| 85 | | |
| 86 | 64 | } else { |
| 87 | 65 | v.getHlasky().add(new Hlaska("Došlo k chybě historie.", Typ.Chyba)); |
| … |
… |
|
| 89 | 67 | return v; |
| 90 | 68 | } |
| | 69 | |
| | 70 | private Tabulka zpracujVysledek(ResultSet rs) throws SQLException { |
| | 71 | Tabulka t = new Tabulka(); |
| | 72 | |
| | 73 | int pocetSloupecku = rs.getMetaData().getColumnCount(); |
| | 74 | String[] zahlavi = new String[pocetSloupecku]; |
| | 75 | t.setZahlavi(zahlavi); |
| | 76 | for (int i = 0; i < pocetSloupecku; i++) { |
| | 77 | zahlavi[i] = rs.getMetaData().getColumnName(i + 1); |
| | 78 | } |
| | 79 | |
| | 80 | while (rs.next()) { |
| | 81 | Object[] hodnoty = new Object[pocetSloupecku]; |
| | 82 | for (int i = 0; i < pocetSloupecku; i++) { |
| | 83 | hodnoty[i] = rs.getObject(i + 1); |
| | 84 | } |
| | 85 | t.getHodnoty().add(hodnoty); |
| | 86 | } |
| | 87 | |
| | 88 | return t; |
| | 89 | } |
| 91 | 90 | } |