1.1 --- a/java/sql-vyuka/src/java/cz/frantovo/sql/vyuka/dao/PiskovisteDAO.java Fri May 29 03:44:35 2009 +0200
1.2 +++ b/java/sql-vyuka/src/java/cz/frantovo/sql/vyuka/dao/PiskovisteDAO.java Fri May 29 04:09:58 2009 +0200
1.3 @@ -25,15 +25,6 @@
1.4 VysledekSQL v = new VysledekSQL();
1.5 if (historie.ulozPrikaz(sql, uzivatel)) {
1.6
1.7 -
1.8 -
1.9 -
1.10 -
1.11 -
1.12 - Tabulka t = new Tabulka();
1.13 -
1.14 -
1.15 -
1.16 Connection db = getSpojeni(DATABAZE.PISKOVISTE);
1.17 if (db == null) {
1.18 v.getHlasky().add(new Hlaska("Došlo k chybě spojení.", Typ.Chyba));
1.19 @@ -42,28 +33,19 @@
1.20 ResultSet rs = null;
1.21 try {
1.22 ps = db.prepareStatement(sql);
1.23 - rs = ps.executeQuery();
1.24 + boolean isRS = ps.execute();
1.25
1.26 - int pocetSloupecku = rs.getMetaData().getColumnCount();
1.27 - String[] zahlavi = new String[pocetSloupecku];
1.28 - t.setZahlavi(zahlavi);
1.29 - for (int i = 0; i < pocetSloupecku; i++) {
1.30 - zahlavi[i] = rs.getMetaData().getColumnName(i + 1);
1.31 - }
1.32 + if (isRS) {
1.33 + rs = ps.getResultSet();
1.34 + v.getTabulky().add(zpracujVysledek(rs));
1.35
1.36 - while (rs.next()) {
1.37 - Object[] hodnoty = new Object[pocetSloupecku];
1.38 - for (int i = 0; i < pocetSloupecku; i++) {
1.39 - hodnoty[i] = rs.getObject(i + 1);
1.40 + while (ps.getMoreResults()) {
1.41 + rs = ps.getResultSet();
1.42 + v.getTabulky().add(zpracujVysledek(rs));
1.43 }
1.44 - t.getHodnoty().add(hodnoty);
1.45 - }
1.46 -
1.47 - if (t.getHodnoty().size() > 0 && pocetSloupecku > 0) {
1.48 -
1.49 - v.getTabulky().add(t);
1.50 } else {
1.51 - v.getHlasky().add(new Hlaska("SQL příkaz byl proveden.", Typ.OK));
1.52 + /** TODO: zobrazit počet aktualizovaných? */
1.53 + v.getHlasky().add(new Hlaska("SQL příkaz byl proveden, ale nevrátil žádná data.", Typ.Varovani));
1.54 }
1.55
1.56 } catch (SQLException e) {
1.57 @@ -79,13 +61,30 @@
1.58
1.59 v.getHlasky().add(new Hlaska(tipy.getTip(), Typ.Tip, false));
1.60
1.61 -
1.62 -
1.63 -
1.64 -
1.65 } else {
1.66 v.getHlasky().add(new Hlaska("Došlo k chybě historie.", Typ.Chyba));
1.67 }
1.68 return v;
1.69 }
1.70 +
1.71 + private Tabulka zpracujVysledek(ResultSet rs) throws SQLException {
1.72 + Tabulka t = new Tabulka();
1.73 +
1.74 + int pocetSloupecku = rs.getMetaData().getColumnCount();
1.75 + String[] zahlavi = new String[pocetSloupecku];
1.76 + t.setZahlavi(zahlavi);
1.77 + for (int i = 0; i < pocetSloupecku; i++) {
1.78 + zahlavi[i] = rs.getMetaData().getColumnName(i + 1);
1.79 + }
1.80 +
1.81 + while (rs.next()) {
1.82 + Object[] hodnoty = new Object[pocetSloupecku];
1.83 + for (int i = 0; i < pocetSloupecku; i++) {
1.84 + hodnoty[i] = rs.getObject(i + 1);
1.85 + }
1.86 + t.getHodnoty().add(hodnoty);
1.87 + }
1.88 +
1.89 + return t;
1.90 + }
1.91 }