Revision 3959 trunk/libraries/libFMap/src/com/iver/cit/gvsig/fmap/layers/VectorialDBAdapter.java
VectorialDBAdapter.java | ||
---|---|---|
72 | 72 |
*/ |
73 | 73 |
public class VectorialDBAdapter extends VectorialAdapter implements VectorialSecuencial { |
74 | 74 |
private int numReg=-1; |
75 |
private DataSource ds = null; |
|
75 |
private SelectableDataSource ds = null;
|
|
76 | 76 |
/** |
77 | 77 |
* incrementa el contador de las veces que se ha abierto el fichero. |
78 | 78 |
* Solamente cuando el contador est? a cero pide al driver que conecte con |
... | ... | |
96 | 96 |
} |
97 | 97 |
|
98 | 98 |
/** |
99 |
* @return devuelve la Conexi?n a la base de datos, para que
|
|
99 |
* @return devuelve la Conexi?n a la base de datos, para que |
|
100 | 100 |
* el usuario pueda hacer la consulta que quiera, si lo desea. |
101 | 101 |
* Por ejemplo, esto puede ser ?til para abrir un cuadro de dialogo |
102 | 102 |
* avanazado y lanzar peticiones del tipo "Devuelveme un buffer |
... | ... | |
115 | 115 |
{ |
116 | 116 |
return ((VectorialDatabaseDriver)driver).getFeatureIterator(r, strEPSG); |
117 | 117 |
} |
118 |
|
|
118 |
|
|
119 | 119 |
public IFeatureIterator getFeatureIterator(Rectangle2D r, String strEPSG, String[] alphaNumericFieldsNeeded) throws DriverException |
120 | 120 |
{ |
121 | 121 |
return ((VectorialDatabaseDriver)driver).getFeatureIterator(r, strEPSG, alphaNumericFieldsNeeded); |
122 | 122 |
} |
123 |
|
|
123 |
|
|
124 | 124 |
public String[] getFields() |
125 | 125 |
{ |
126 |
return ((VectorialDatabaseDriver)driver).getFields();
|
|
126 |
return ((VectorialDatabaseDriver)driver).getFields(); |
|
127 | 127 |
} |
128 | 128 |
public String getWhereClause() |
129 | 129 |
{ |
... | ... | |
133 | 133 |
{ |
134 | 134 |
return ((VectorialDatabaseDriver)driver).getTableName(); |
135 | 135 |
} |
136 |
|
|
137 |
|
|
136 |
|
|
137 |
|
|
138 | 138 |
/** |
139 | 139 |
* @see com.iver.cit.gvsig.fmap.layers.ReadableVectorial#getShape(int) |
140 | 140 |
*/ |
... | ... | |
158 | 158 |
/** |
159 | 159 |
* @see com.iver.cit.gvsig.fmap.layers.VectorialAdapter#getRecordset() |
160 | 160 |
*/ |
161 |
public DataSource getRecordset() throws DriverLoadException { |
|
161 |
public SelectableDataSource getRecordset() throws DriverLoadException {
|
|
162 | 162 |
if (driver instanceof ObjectDriver) |
163 | 163 |
{ |
164 | 164 |
if (ds == null) |
165 | 165 |
{ |
166 | 166 |
String name = LayerFactory.getDataSourceFactory().addDataSource((ObjectDriver)driver); |
167 | 167 |
try { |
168 |
ds = LayerFactory.getDataSourceFactory().createRandomDataSource(name, DataSourceFactory.AUTOMATIC_OPENING);
|
|
168 |
ds = new SelectableDataSource(LayerFactory.getDataSourceFactory().createRandomDataSource(name, DataSourceFactory.AUTOMATIC_OPENING));
|
|
169 | 169 |
} catch (NoSuchTableException e) { |
170 | 170 |
throw new RuntimeException(e); |
171 | 171 |
} catch (com.hardcode.gdbms.engine.data.driver.DriverException e) { |
172 | 172 |
throw new RuntimeException(e); |
173 | 173 |
} |
174 |
}
|
|
174 |
} |
|
175 | 175 |
} |
176 | 176 |
return ds; |
177 | 177 |
} |
... | ... | |
189 | 189 |
Value[] regAtt = new Value[rs.getFieldCount()]; |
190 | 190 |
String theID = null; |
191 | 191 |
for (int fieldId=0; fieldId < rs.getFieldCount(); fieldId++ ) |
192 |
{
|
|
192 |
{ |
|
193 | 193 |
regAtt[fieldId] = rs.getFieldValue(numReg, fieldId); |
194 | 194 |
if (fieldId == idFieldID) |
195 | 195 |
theID = regAtt[fieldId].toString(); |
196 | 196 |
} |
197 |
|
|
197 |
|
|
198 | 198 |
feat = new DefaultFeature(geom, regAtt, theID); |
199 | 199 |
} catch (DriverIOException e) { |
200 | 200 |
throw new DriverException(e); |
Also available in: Unified diff