select queries now work, and print tabular output.
[squelch.git] / src / main / java / net / jaekl / squelch / stmt / TabularResultSet.java
index 92da23dc1872f9b4764a65eabb21fbbbe89f4129..f8e233c4061335bf186afdd7c9f808ce32a96164 100644 (file)
@@ -9,9 +9,11 @@ import net.jaekl.squelch.sql.Row;
 
 public class TabularResultSet extends Tabular {
        private ResultSet m_resultSet;
+       private Column[] m_cols;
        
        public TabularResultSet(ResultSet resultSet) {
                m_resultSet = resultSet;
+               m_cols = null;
        }
 
        @Override
@@ -26,13 +28,24 @@ public class TabularResultSet extends Tabular {
                        int width = metaData.getColumnDisplaySize(idx);
                        cols[idx - 1] = new Column(label, clazz, width);
                }
-               
+               m_cols = cols;
                return cols;
        }
 
        @Override
-       Row getNext() {
-               // TODO Auto-generated method stub
-               return null;
+       Row getNext() throws SQLException {
+               if (null == m_cols) {
+                       m_cols = getCols();
+               }
+               if (! m_resultSet.next()) {
+                       return null;
+               }
+               
+               Row row = new Row(m_cols.length);
+               for (int idx = 0; idx < m_cols.length; ++idx) {
+                       row.setValue(idx + 1, m_resultSet.getObject(idx + 1));
+               }
+               
+               return row;
        }
 }