0

Android デバイスの値を sqlite データベースに挿入しようとしています。

ただし、次のエラーがスローされる場合があります。

android.database.sqlite.SQLiteException: near ",": syntax error: , while compiling: INSERT INTO sensor_event (created_at, updated_at, type, x, y, z, time) VALUES (?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?)

残念ながら、クエリが実行されない理由はわかりません。他の誰か?

乾杯、

ゴードン

4

2 に答える 2

5

あなたが提供するものは、有効な sqlite 構文ではありません。SQLite は、単一の命令での複数の挿入をいくらかサポートしていますが、それはわずかに異なる方法で行われます。ここを参照してください。

クエリをどのように生成し、質問で時々何を意味するのか - 私にとっては、そのようなクエリを試みるたびにエラーが発生します。

クエリを次のように書き換えます。

INSERT INTO sensor_event
SELECT ? as created_at, ? as updated_at, ? as type, ? as x, ? as y, ? as z, ? as time
UNION SELECT ?, ?, ?, ?, ?, ?, ?
UNION SELECT ?, ?, ?, ?, ?, ?, ?
UNION SELECT ?, ?, ?, ?, ?, ?, ?
UNION SELECT ?, ?, ?, ?, ?, ?, ?
UNION SELECT ?, ?, ?, ?, ?, ?, ?
于 2012-09-20T18:36:49.437 に答える
0

バージョン 3.7.11 以降、SQLite は複合挿入ステートメントを許可します

Android はバージョン 4.1 から 3.7.11 を使用します。Boris Strandjev が述べたように、以前のバージョンは失敗します。

Android バージョンの SQLiteバージョン: Android で使用される SQLite のバージョン?

于 2012-09-21T19:37:53.227 に答える