Revision 25516 trunk/extensions/extJDBC/src/com/iver/cit/gvsig/fmap/drivers/jdbc/postgis/PostGIS.java

View differences:

PostGIS.java
52 52
import com.hardcode.gdbms.engine.values.Value;
53 53
import com.hardcode.gdbms.engine.values.ValueWriter;
54 54
import com.iver.cit.gvsig.fmap.core.FShape;
55
import com.iver.cit.gvsig.fmap.core.FShapeM;
55 56
import com.iver.cit.gvsig.fmap.core.GeneralPathX;
56 57
import com.iver.cit.gvsig.fmap.core.IFeature;
57 58
import com.iver.cit.gvsig.fmap.core.IGeometry;
......
276 277
				geometry=ShapeMFactory.createPolyline2DM(new GeneralPathX(geometry.getInternalShape()),((IGeometryM)geometry).getMs()); //MCoord
277 278
			}
278 279
		}
279
		sqlBuf.append(" GeometryFromText( '"
280
		//MCoord
281
		if ((type == (FShape.LINE|FShape.M)) || (type == (FShape.POINT|FShape.M))){
282
			sqlBuf.append(" GeometryFromText( '"
283
					+ ((FShapeM)geometry.getInternalShape()).toText() + "', "
284
					+ DefaultJDBCDriver.removePrefix(dbLayerDef.getSRID_EPSG()) + ")");
285
		}else{
286
			sqlBuf.append(" GeometryFromText( '"
280 287
				+ geometry.toJTSGeometry().toText() + "', "
281 288
				+ DefaultJDBCDriver.removePrefix(dbLayerDef.getSRID_EPSG()) + ")");
289
		}
282 290

  
283 291
		// sqlBuf.deleteCharAt(sqlBuf.lastIndexOf(","));
284 292
		sqlBuf.append(" ) ");
......
323 331
				}
324 332
			}
325 333
		}
326
		sqlBuf.deleteCharAt(sqlBuf.lastIndexOf(","));
334
		//If pos > 0 there is at least one field..
335
		int pos = sqlBuf.lastIndexOf(",");
336
		if (pos > -1){
337
			sqlBuf.deleteCharAt(pos);
338
		}
327 339
		if (feat.getGeometry() != null)
328
		{
329
			sqlBuf.append(", " + dbLayerDef.getFieldGeometry());
340
		{		
341
			if (pos > -1){
342
				sqlBuf.append(",");
343
			}
344
			sqlBuf.append(" " + dbLayerDef.getFieldGeometry());
330 345
			sqlBuf.append(" = ");
331
			sqlBuf.append(" GeometryFromText( '"
346
			//MCoord
347
			int type = feat.getGeometry().getGeometryType();
348
			if ((type == (FShape.LINE|FShape.M)) || (type == (FShape.POINT|FShape.M))){
349
				sqlBuf.append(" GeometryFromText( '"
350
						+ ((FShapeM)feat.getGeometry().getInternalShape()).toText() + "', "
351
						+ DefaultJDBCDriver.removePrefix(dbLayerDef.getSRID_EPSG()) + ")");
352
			}else{
353
				sqlBuf.append(" GeometryFromText( '"
332 354
				+ feat.getGeometry().toJTSGeometry().toText() + "', "
333 355
				+ DefaultJDBCDriver.removePrefix(dbLayerDef.getSRID_EPSG()) + ")");
356
			}
334 357
		}
335 358
		sqlBuf.append(" WHERE ");
336 359
		sqlBuf.append(dbLayerDef.getFieldID() + " = " + feat.getID());

Also available in: Unified diff