Revision 43358 trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.db/org.gvsig.fmap.dal.db.jdbc/src/main/java/org/gvsig/fmap/dal/store/jdbc2/impl/ResulSetControlerBase.java

View differences:

ResulSetControlerBase.java
10 10
import java.util.List;
11 11
import java.util.Map;
12 12
import org.gvsig.fmap.dal.exception.DataException;
13
import org.gvsig.fmap.dal.feature.FeatureAttributeDescriptor;
13 14
import org.gvsig.fmap.dal.store.jdbc.exception.JDBCExecutePreparedSQLException;
14 15
import org.gvsig.fmap.dal.store.jdbc2.JDBCHelper;
15 16
import org.gvsig.fmap.dal.store.jdbc2.JDBCUtils;
......
27 28
        private final int id;
28 29
        private long lastUse = 0;
29 30
        private String sql;
31
        private final FeatureAttributeDescriptor[] columns;
30 32

  
31
        public ResultSetEntryBase(ResultSet resulSet) {
32
            this(resulSet,null);
33
        public ResultSetEntryBase(ResultSet resulSet, FeatureAttributeDescriptor[] columns) {
34
            this(resulSet,null, columns);
33 35
        }
34 36

  
35
        public ResultSetEntryBase(ResultSet resulSet, String sql) {
37
        public ResultSetEntryBase(ResultSet resulSet, String sql, FeatureAttributeDescriptor[] columns) {
36 38
            this.resultSet = resulSet;
37 39
            this.id = nextid++;
38 40
            this.sql = sql;
41
            this.columns = columns;
39 42
            used();
40 43
            resulSets.put(this.getID(), this);
41 44
        }
......
68 71
            return this.sql;
69 72
        }
70 73

  
74
        public FeatureAttributeDescriptor[] getColumns() {
75
            return this.columns;
76
        }
77
        
71 78
        @Override
72 79
        public Object getObject(int columnIndex) throws SQLException {
73 80
            used();
......
149 156
    }
150 157

  
151 158
    @Override
152
    public ResultSetEntryBase create(String sql, int fetchSize) throws DataException {
153
        return create(sql, null, fetchSize);
159
    public ResultSetEntryBase create(
160
            String sql, 
161
            int fetchSize, 
162
            FeatureAttributeDescriptor[] columns) throws DataException {
163
        return create(sql, null, fetchSize, columns);
154 164
    }
155 165

  
156 166
    @Override
157 167
    public synchronized ResultSetEntryBase create(
158 168
            final String sql,
159 169
            final List values,
160
            final int fetchSize) throws DataException {
170
            final int fetchSize, 
171
            FeatureAttributeDescriptor[] columns) throws DataException {
161 172

  
162 173
        this.pack();
163 174
        ResultSet rs = null;
......
171 182
            JDBCUtils.setObjects(st, values, helper.getGeometrySupportType());
172 183

  
173 184
            if (fetchSize > 0) {
185
                // See parameter "SelectMethod" of SQL Server Connection Properties
186
                // https://docs.oracle.com/cd/E13157_01/wlevs/docs30/jdbc_drivers/mssqlserver.html
174 187
                st.setFetchSize(fetchSize);
175 188
            }
176 189
            rs = JDBCUtils.executeQuery(st, sql);
......
184 197
            JDBCUtils.closeQuietly(conn);
185 198
            throw new JDBCExecutePreparedSQLException(sql, values, e);
186 199
        }
187
        ResultSetEntryBase rsentry = new ResultSetEntryBase(rs, sql);
200
        ResultSetEntryBase rsentry = new ResultSetEntryBase(rs, sql, columns);
188 201
        return rsentry;
189 202
    }
190 203

  

Also available in: Unified diff