[mapguide-users] MSSqlServer Spatial problem

Dave Wilson dave.wilson at autodesk.com
Thu Jun 25 11:09:41 EDT 2009


I was using a third party application to try and insert into SQL Server Spatial and I was getting no errors whatsoever. It came down to a security issue. Does the userid used in your FeatureSource have insert/update permissions in the database? It seems you have select permissions.

Dave

-----Original Message-----
From: mapguide-users-bounces at lists.osgeo.org [mailto:mapguide-users-bounces at lists.osgeo.org] On Behalf Of zolinko
Sent: Thursday, June 25, 2009 3:53 AM
To: mapguide-users at lists.osgeo.org
Subject: RE: [mapguide-users] MSSqlServer Spatial problem


Hi,
Thanks for your answer,

A test code is here at the end. (I use custom geomtry parser to craete
geometry, but I checked, that it creates valid geometry.)
Simply the next row doesn't return:
MgPropertyCollection propColl = fSrv.UpdateFeatures(cspResId, commands,
false);

Trace, Error and the other logs are at max level. Error log doesn't contain
anything.
Trace log contains only the following rows:
<2009-06-25T11:01:02.016975> 	2964	MgServerFeatureService::UpdateFeatures()
<2009-06-25T11:01:02.016975> 	2964
MgServerResourceService::CheckPermission()
<2009-06-25T11:01:02.016975> 	2964
MgServerResourceService::CheckPermission()
And then nothing.

By the way, I can read the FeatureSource very well. Also have run a test,
that used directly the Spatial FDO provider (code in C#), and that
succeeded.
(In the FDO api there were no AGF format, instead of that, there was a FGF
(fdo geometry format)). Maybe this causes the problem, I mean the wrong
format?...

We use HUN-EOV72-7P (Hungary, Uniform National Projection System of 1972)
coordinate system (SRID 23700), but it seems to be working very well (we can
view the stored data in maps).

Any further idea?
TIA, 
zolinko


And the sample code:

double kcspX = 100000;
double kcspY = 600000;
double mcspX = 300000;
double mcspY = 600000;
double vcspX = 300000;
double vcspY = 900000;

String fsName = "Library://TEST/Data/TESTDB.FeatureSource";
MgResourceIdentifier resId = new MgResourceIdentifier(fsName);
MgFeatureCommandCollection commands = new MgFeatureCommandCollection();
MgAgfReaderWriter agfRW = new MgAgfReaderWriter();
MgLineString geomL = null;

//Create New geometry With Custom Parser
coordsString = "3" + GeometryConsts.GEOM_COORD_COUNT_SEPARATOR;
coordsString +=
	kcspX + GeometryConsts.GEOM_COORD_SEPARATOR + kcspY +
		GeometryConsts.GEOM_MAIN_COORD_SEPARATOR +
	mcspX + GeometryConsts.GEOM_COORD_SEPARATOR + mcspY +
		GeometryConsts.GEOM_MAIN_COORD_SEPARATOR +
	vcspX + GeometryConsts.GEOM_COORD_SEPARATOR + vcspY;
geomL = (MgLineString)GeometryParser.parseString(coordsString,
MgGeometryType.LineString);
//TESTED: geomL.IsValid() == true

MgCoordinateCollection coordsCollL = new MgCoordinateCollection();
MgCoordinateIterator coordItL = geomL.GetCoordinates();
while(coordItL.MoveNext()) coordsCollL.Add(coordItL.GetCurrent());

MgGeometryFactory geomFactory = new MgGeometryFactory();
MgLineString newGeomL = geomFactory.CreateLineString(coordsCollL);

//GEOMETRY PROPERTY UPDATE
MgPropertyCollection props = new MgPropertyCollection();
props.Add(new MgGeometryProperty("SDOOBJ", agfRW.Write(newGeomL)));

//setting up command
commands.Add(new MgUpdateFeatures("FDO_SCHEMA:GM_LINES", props, "L_ID =
'1000'"));

MgPropertyCollection propColl = fSrv.UpdateFeatures(resId, commands, false);
MgProperty result = propColl.GetItem(0);
if (result.GetPropertyType() == MgPropertyType.Int32)
{
	//OK
	System.out.println("Updated: "+((MgInt32Property)result).GetValue()+"
objects.");
}
else	
{
	if (result.GetPropertyType() == MgPropertyType.String) //ERROR
	{
		System.out.println(((MgStringProperty)result).GetValue());
	}
}



Dave Wilson wrote:
> 
> What coordinate system is your data in? Apparently SQL Server has 2
> geometry types, Geometry and Geography. Geography is used for Lat Long
> based data. I haven't worked with inserts and the new provider so I don't
> know if there is anything special about it. Are you inserting features one
> by one? Attaching your code might help.
> 
> Regards,
> Dave
> 

-- 
View this message in context: http://n2.nabble.com/MSSqlServer-Spatial-problem-tp3148712p3154109.html
Sent from the MapGuide Users mailing list archive at Nabble.com.

_______________________________________________
mapguide-users mailing list
mapguide-users at lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/mapguide-users


More information about the mapguide-users mailing list