Android:未能使用SQL扩展函数或内建更新行

问题描述:

我在SQLiteDatabase命令中遇到了很多麻烦。我已经加载了spatialite并启用了扩展。我想我的价值观之一是MakePoint函数的输出,所以我有一个含量值是这样的:Android:未能使用SQL扩展函数或内建更新行

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

当这个被传递到SQLiteDatabase.Update()它escapsed使得所得到的字符串最终被"UPDATE Targets SET Location='MakePoint(43.2, 27.345, 4326)'" SQLite的讨厌这个并引发异常。

有没有简单的方法呢?现在我试图手动建立字符串,因为我无法使用更新。

我想通了。我必须首先执行“SELECT MakePoint(43.2,27.345,4326)”,然后将其插入位置。

SQLiteDatabase不适用于SpatiaLite扩展名。 update()仅支持简单值,而不支持通用表达式;你不能用它来插入地理对象。

执行命令的唯一方法是手动构建它,并通过execSQL()运行它。

您可以编写自己的理解SpatiaLite数据类型的数据库包装器对象。