# HG changeset patch # User František Kučera # Date 1243562998 -7200 # Node ID 08cd160ec1c68b9cced1a4f58a75c7bbee462e23 # Parent 9acb74ac7346d789ca50692aa77738596af0b497 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. diff -r 9acb74ac7346 -r 08cd160ec1c6 java/sql-vyuka/src/java/cz/frantovo/sql/vyuka/dao/HistorieDAO.sql.xml --- a/java/sql-vyuka/src/java/cz/frantovo/sql/vyuka/dao/HistorieDAO.sql.xml Fri May 29 03:44:35 2009 +0200 +++ b/java/sql-vyuka/src/java/cz/frantovo/sql/vyuka/dao/HistorieDAO.sql.xml Fri May 29 04:09:58 2009 +0200 @@ -3,7 +3,11 @@ diff -r 9acb74ac7346 -r 08cd160ec1c6 java/sql-vyuka/src/java/cz/frantovo/sql/vyuka/dao/PiskovisteDAO.java --- a/java/sql-vyuka/src/java/cz/frantovo/sql/vyuka/dao/PiskovisteDAO.java Fri May 29 03:44:35 2009 +0200 +++ b/java/sql-vyuka/src/java/cz/frantovo/sql/vyuka/dao/PiskovisteDAO.java Fri May 29 04:09:58 2009 +0200 @@ -25,15 +25,6 @@ VysledekSQL v = new VysledekSQL(); if (historie.ulozPrikaz(sql, uzivatel)) { - - - - - - Tabulka t = new Tabulka(); - - - Connection db = getSpojeni(DATABAZE.PISKOVISTE); if (db == null) { v.getHlasky().add(new Hlaska("Došlo k chybě spojení.", Typ.Chyba)); @@ -42,28 +33,19 @@ ResultSet rs = null; try { ps = db.prepareStatement(sql); - rs = ps.executeQuery(); + boolean isRS = ps.execute(); - int pocetSloupecku = rs.getMetaData().getColumnCount(); - String[] zahlavi = new String[pocetSloupecku]; - t.setZahlavi(zahlavi); - for (int i = 0; i < pocetSloupecku; i++) { - zahlavi[i] = rs.getMetaData().getColumnName(i + 1); - } + if (isRS) { + rs = ps.getResultSet(); + v.getTabulky().add(zpracujVysledek(rs)); - while (rs.next()) { - Object[] hodnoty = new Object[pocetSloupecku]; - for (int i = 0; i < pocetSloupecku; i++) { - hodnoty[i] = rs.getObject(i + 1); + while (ps.getMoreResults()) { + rs = ps.getResultSet(); + v.getTabulky().add(zpracujVysledek(rs)); } - t.getHodnoty().add(hodnoty); - } - - if (t.getHodnoty().size() > 0 && pocetSloupecku > 0) { - - v.getTabulky().add(t); } else { - v.getHlasky().add(new Hlaska("SQL příkaz byl proveden.", Typ.OK)); + /** TODO: zobrazit počet aktualizovaných? */ + v.getHlasky().add(new Hlaska("SQL příkaz byl proveden, ale nevrátil žádná data.", Typ.Varovani)); } } catch (SQLException e) { @@ -79,13 +61,30 @@ v.getHlasky().add(new Hlaska(tipy.getTip(), Typ.Tip, false)); - - - - } else { v.getHlasky().add(new Hlaska("Došlo k chybě historie.", Typ.Chyba)); } return v; } + + private Tabulka zpracujVysledek(ResultSet rs) throws SQLException { + Tabulka t = new Tabulka(); + + int pocetSloupecku = rs.getMetaData().getColumnCount(); + String[] zahlavi = new String[pocetSloupecku]; + t.setZahlavi(zahlavi); + for (int i = 0; i < pocetSloupecku; i++) { + zahlavi[i] = rs.getMetaData().getColumnName(i + 1); + } + + while (rs.next()) { + Object[] hodnoty = new Object[pocetSloupecku]; + for (int i = 0; i < pocetSloupecku; i++) { + hodnoty[i] = rs.getObject(i + 1); + } + t.getHodnoty().add(hodnoty); + } + + return t; + } }