Changeset 17:08cd160ec1c6

Show
Ignore:
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:
2 modified

Legend:

Unmodified
Added
Removed
  • java/sql-vyuka/src/java/cz/frantovo/sql/vyuka/dao/HistorieDAO.sql.xml

    r16 r17  
    44    <entry key="NACTI"> 
    55        <![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 
    711        ]]> 
    812    </entry> 
  • java/sql-vyuka/src/java/cz/frantovo/sql/vyuka/dao/PiskovisteDAO.java

    r16 r17  
    2626        if (historie.ulozPrikaz(sql, uzivatel)) { 
    2727 
    28  
    29  
    30  
    31  
    32  
    33             Tabulka t = new Tabulka(); 
    34  
    35  
    36  
    3728            Connection db = getSpojeni(DATABAZE.PISKOVISTE); 
    3829            if (db == null) { 
     
    4334                try { 
    4435                    ps = db.prepareStatement(sql); 
    45                     rs = ps.executeQuery(); 
     36                    boolean isRS = ps.execute(); 
    4637 
    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)); 
    5341 
    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)); 
    5845                        } 
    59                         t.getHodnoty().add(hodnoty); 
    60                     } 
    61  
    62                     if (t.getHodnoty().size() > 0 && pocetSloupecku > 0) { 
    63  
    64                         v.getTabulky().add(t); 
    6546                    } 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)); 
    6749                    } 
    6850 
     
    8062            v.getHlasky().add(new Hlaska(tipy.getTip(), Typ.Tip, false)); 
    8163 
    82  
    83  
    84  
    85  
    8664        } else { 
    8765            v.getHlasky().add(new Hlaska("Došlo k chybě historie.", Typ.Chyba)); 
     
    8967        return v; 
    9068    } 
     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    } 
    9190}