Android:无法使用SQL扩展函数或内置更新行
我在使用SQLiteDatabase命令时遇到了很多问题。我已经加载了spatialite并启用了扩展。我希望我的一个值是MakePoint函数的输出,所以我有一个如下的内容值:Android:无法使用SQL扩展函数或内置更新行,android,sqlite,spatialite,Android,Sqlite,Spatialite,我在使用SQLiteDatabase命令时遇到了很多问题。我已经加载了spatialite并启用了扩展。我希望我的一个值是MakePoint函数的输出,所以我有一个如下的内容值: values.put("Location", "MakePoint(43.2, 27.345, 4326)"); 当它被传递到SQLiteDatabase.Update()中时,它被转义,结果字符串是“updatetargets SET Location='MakePoint(43.2,27.345,4326)'”S
values.put("Location", "MakePoint(43.2, 27.345, 4326)");
当它被传递到SQLiteDatabase.Update()
中时,它被转义,结果字符串是“updatetargets SET Location='MakePoint(43.2,27.345,4326)'”
SQLite不喜欢这种情况并抛出异常
有没有简单的办法?现在我正在尝试手动构建字符串,因为我无法使用Update。
SQLiteDatabase
不是为SpatiaLite扩展设计的。
update()
只支持简单值,不支持通用表达式;不能使用它插入地理对象
执行命令的唯一方法是手动生成命令并通过execSQL()
运行它
您可以编写自己的数据库包装器对象,以理解SpatiaLite数据类型。我知道了。我必须先做一个“选择生成点(43.2,27.345,4326)”,然后将其插入到位置中