Changeset 17:08cd160ec1c6
- Timestamp:
- 05/29/09 04:09:58 (15 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 | } |