Revision 9767 trunk/libraries/libGDBMS/src/main/java/com/hardcode/gdbms/driver/odbc/ODBCDriver.java
ODBCDriver.java | ||
---|---|---|
9 | 9 |
import com.hardcode.gdbms.engine.data.driver.DriverException; |
10 | 10 |
import com.hardcode.gdbms.engine.values.Value; |
11 | 11 |
import com.hardcode.gdbms.engine.values.ValueWriter; |
12 |
import com.iver.cit.gvsig.fmap.drivers.FieldDescription; |
|
13 |
import com.iver.cit.gvsig.fmap.drivers.ITableDefinition; |
|
14 |
import com.iver.cit.gvsig.fmap.drivers.TableDefinition; |
|
12 | 15 |
import com.iver.cit.gvsig.fmap.edition.IWriteable; |
13 | 16 |
import com.iver.cit.gvsig.fmap.edition.IWriter; |
14 | 17 |
import com.iver.cit.gvsig.fmap.edition.writers.JdbcWriter; |
18 |
import com.iver.utiles.NumberUtilities; |
|
15 | 19 |
|
16 | 20 |
import java.sql.Connection; |
17 | 21 |
import java.sql.Date; |
... | ... | |
283 | 287 |
public IWriter getWriter() { |
284 | 288 |
return jdbcWriter; |
285 | 289 |
} |
290 |
|
|
291 |
public ITableDefinition getTableDefinition() { |
|
292 |
TableDefinition tableDef = new TableDefinition(); |
|
293 |
try { |
|
294 |
tableDef.setFieldsDesc(getFieldsDescription()); |
|
295 |
} catch (DriverException e) { |
|
296 |
throw new RuntimeException(e);//excepcion sin chequear |
|
297 |
} |
|
298 |
return tableDef; |
|
299 |
} |
|
300 |
|
|
301 |
/*azabala |
|
302 |
TODO Codigo repetido entre ODBCDriver y AbstractJDBCDriver. |
|
303 |
Igual hay que ponerlo en una clase auxiliar comun |
|
304 |
* |
|
305 |
*/ |
|
306 |
private FieldDescription[] getFieldsDescription() throws DriverException |
|
307 |
{ |
|
308 |
int numFields = getFieldCount(); |
|
309 |
FieldDescription[] fieldsDescrip = new FieldDescription[numFields]; |
|
310 |
for (int i = 0; i < numFields; i++) { |
|
311 |
fieldsDescrip[i] = new FieldDescription(); |
|
312 |
int type = getFieldType(i); |
|
313 |
fieldsDescrip[i].setFieldType(type); |
|
314 |
fieldsDescrip[i].setFieldName(getFieldName(i)); |
|
315 |
fieldsDescrip[i].setFieldLength(getFieldWidth(i)); |
|
316 |
if (NumberUtilities.isNumeric(type)) |
|
317 |
{ |
|
318 |
if (!NumberUtilities.isNumericInteger(type)) |
|
319 |
// TODO: If there is a lost in precision, this should be changed. |
|
320 |
fieldsDescrip[i].setFieldDecimalCount(6); |
|
321 |
} |
|
322 |
else |
|
323 |
fieldsDescrip[i].setFieldDecimalCount(0); |
|
324 |
// TODO: ?DEFAULTVALUE? |
|
325 |
// fieldsDescrip[i].setDefaultValue(get) |
|
326 |
} |
|
327 |
return fieldsDescrip; |
|
328 |
} |
|
286 | 329 |
} |
Also available in: Unified diff