Question

I'm having a lot of trouble with SQLiteDatabase command. I have loaded up spatialite and enabled the extension. I want one of my values to be the output of the MakePoint function so I have a content value like this:

values.put("Location", "MakePoint(43.2, 27.345, 4326)");

When this is passed into SQLiteDatabase.Update() it's escapsed so that the resulting string ends up being "UPDATE Targets SET Location='MakePoint(43.2, 27.345, 4326)'" SQLite hates this and throws an exception.

Is there an easy way around this? Right now I'm trying to build up the string manually since I can't use Update.

Was it helpful?

Solution 2

I figured it out. I have to do a "SELECT MakePoint(43.2, 27.345, 4326)" first and then insert that into Location.

OTHER TIPS

SQLiteDatabase was not designed for the SpatiaLite extension. update() supports only simple values, not generic expressions; you cannot use it to insert geographic objects.

The only way to execute your command is to build it manually an run it through execSQL().

You could write your own database wrapper object that understands SpatiaLite data types.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top