0

SQLiteDatabaseコマンドで多くの問題が発生しています。私はspatialiteをロードし、拡張機能を有効にしました。値の1つをMakePoint関数の出力にしたいので、次のようなコンテンツ値があります。

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

これが渡されるSQLiteDatabase.Update()と、エスケープされて、結果の文字列が"UPDATE Targets SET Location='MakePoint(43.2, 27.345, 4326)'"SQLiteになり、これを嫌い、例外がスローされます。

これを回避する簡単な方法はありますか?Updateを使用できないため、現在、文字列を手動で作成しようとしています。

4

2 に答える 2

1

SQLiteDatabaseSpatiaLite 拡張機能用に設計されていません。 update()一般的な式ではなく、単純な値のみをサポートします。これを使用して地理オブジェクトを挿入することはできません。

コマンドを実行する唯一の方法は、手動でビルドしてから実行することexecSQL()です。

SpatiaLite データ型を理解する独自のデータベース ラッパー オブジェクトを作成できます。

于 2012-10-16T15:09:09.470 に答える
0

私はそれを考え出した。最初に「SELECT MakePoint(43.2, 27.345, 4326)」を実行してから、それを Location に挿入する必要があります。

于 2012-10-16T20:00:37.560 に答える