Revision 19626 trunk/libraries/libDataSourceDBBaseDrivers/src/org/gvsig/data/datastores/vectorial/driver/jdbc/h2/H2DriverUtils.java

View differences:

H2DriverUtils.java
21 21
import com.iver.cit.gvsig.fmap.drivers.WKBParser2;
22 22

  
23 23
public class H2DriverUtils {
24
	private static WKBParser2 wkbParser = new WKBParser2();
24 25

  
25 26
	static DBFeatureType getFeatureType(Connection conn,H2DriverParameters params) throws ReadException{
26 27
		String sql="";
......
72 73
					}
73 74
					rsAllMeta.next();
74 75
				}
76
				if (attr.getName().equals(params.getGeometryField())){
77
					if (attr.getDataType().equals(IFeatureAttributeDescriptor.TYPE_OBJECT)){
78
						attr.setType(IFeatureAttributeDescriptor.TYPE_GEOMETRY);
79
					}else{
80
						throw new InitializeException(
81
							"H2DriverUtils.getFeatureType",
82
							new Exception("Geometry Field '"
83
								+ params.getGeometryField()
84
								+ "' is a "
85
								+ attr.getDataType()
86
								+ " but sould be "
87
								+ IFeatureAttributeDescriptor.TYPE_OBJECT));
88
					}
89

  
90
				}
75 91
			}
76 92

  
77 93
			rs.close();
......
162 178
				break;
163 179
			case java.sql.Types.CHAR:
164 180
				column.setType(IFeatureAttributeDescriptor.TYPE_STRING);
165
				column.setSize(rsMetadata.getInt("COLUMN_SIZE"));
181
//				column.setSize(rsMetadata.getInt("COLUMN_SIZE"));
182
				column.setSize(rsMetadata.getInt("CHARACTER_MAXIMUM_LENGTH"));
166 183
				break;
167 184
			case java.sql.Types.VARCHAR:
168 185
				column.setType(IFeatureAttributeDescriptor.TYPE_STRING);
169
				column.setSize(rsMetadata.getInt("COLUMN_SIZE"));
186
//				column.setSize(rsMetadata.getInt("COLUMN_SIZE"));
187
				column.setSize(rsMetadata.getInt("CHARACTER_MAXIMUM_LENGTH"));
188

  
170 189
				break;
171 190
			case java.sql.Types.FLOAT:
172 191
				column.setType(IFeatureAttributeDescriptor.TYPE_FLOAT);
173
				column.setSize(rsMetadata.getInt("COLUMN_SIZE"));
192
//				column.setSize(rsMetadata.getInt("COLUMN_SIZE"));
193
				column.setSize(rsMetadata.getInt("CHARACTER_MAXIMUM_LENGTH"));
174 194
				break;
175 195
			case java.sql.Types.DECIMAL:
176 196
				column.setType(IFeatureAttributeDescriptor.TYPE_FLOAT);
177
				column.setSize(rsMetadata.getInt("COLUMN_SIZE"));
197
//				column.setSize(rsMetadata.getInt("COLUMN_SIZE"));
198
				column.setSize(rsMetadata.getInt("CHARACTER_MAXIMUM_LENGTH"));
178 199
//				column.setPrecision(rsMetadata.getInt("DECIMAL_DIGITS"));
179 200
				column.setPrecision(rsMetadata.getInt("NUMERIC_PRECISION"));
180 201
				break;
......
291 312
	}
292 313

  
293 314
	static IFeature createFeature(H2Driver driver,ResultSet rs,DBFeatureType featureType) throws ReadException{
294
		WKBParser2 wkbParser = new WKBParser2();
295 315

  
296 316
		H2Feature feature=null;
297 317

  

Also available in: Unified diff