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
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