Revision 19626 trunk/libraries/libDataSourceDBBaseDrivers/src/org/gvsig/data/datastores/vectorial/driver/jdbc/h2/H2DriverUtils.java
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