Revision 9767 trunk/libraries/libGDBMS/src/main/java/com/hardcode/gdbms/driver/odbc/ODBCDriver.java

View differences:

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