private void advance() {
			next = null;
			if(rs!=null) {
				try {
					int n = colNames.length;
					final Map<String,Object> mp = new LinkedHashMap<String,Object>();
					for(int i=0;i<n;++i) {
						Object field = null;
						try {
							field = colInfos[i].extracter.getField(rs,i);
						} catch (Exception ex) {
						}
						if(null==field) { // belt and suspenders version
							field = SQLTypeAdapter.stringExtracter.getField(rs,i);
						}
						mp.put(colNames[i],field);
					}
					next = new BurstMap("db",mp); 
					if(!rs.next()) {
						rs = null;
					}
				} catch (SQLException ex) {
					if(rs!=null) {
						try {
							rs.close();
						} catch (SQLException cx) {
						}
					}
					rs = null;
					next = null;
					throw new RuntimeException(ex);
				}
			}
		}