1

Android のクエリに多くのパラメータを渡そうとしています。私がやっていることは次のとおりです。

String final QUERY = "SELECT TA.ID FROM TAB TA LEFT JOIN PROP P ON P.ID = TA.ID LEFT JOIN LOC L ON L.ID = TA.ID LEFT JOIN TIME T ON T.ID = TA.ID  WHERE (COALESCE(LONG,?) - ?) * (COALESCE(LONG,?) - ?) + (COALESCE(LAT,?) - ?)  * (COALESCE(LAT,?) - ?) <=COALESCE(VALUE,0)*COALESCE(VALUE,0)  AND ? BETWEEN  COALESCE(BEGIN,0) AND COALESCE(END, 123456)";
String[] args= {"" + val1, "" + val2, "" + val3, "" + val4, "" + val5, "" val6, "" + val7, "" + val8, "" + val9}
cursor = db.rawQuery(QUERY,args);

しかし、空のカーソルを返します。何か助けてください。ありがとうございました。

4

3 に答える 3

0

よくわかりませんが、それが理由かもしれません。テーブル名の前にTABLEを使用したクエリを見たことがありません

それ以外の

SELECT TA.ID FROM TABLE TA.............

ただ使う

SELECT TA.ID FROM TA..............

もう一つは、あなたが持っている10 ですか?クエリで、 9 つの要素の文字列配列を選択引数として渡します。

于 2012-04-11T07:18:19.967 に答える
0

おそらく、空のカーソルは正しい結果でしょうか? エミュレータ コンソールに移動して、そこで同じ sql を実行して確認することをお勧めします。

彼らがhttp://developer.android.com/guide/developing/tools/adb.htmlに書いているように、 「リモートシェルからのsqlite3データベースの調査」

$ adb -s emulator-5554 shell
# sqlite3 /data/data/com.example.google.rss.rssexample/databases/rssitems.db
SQLite version 3.3.12
Enter ".help" for instructions
.... enter commands, then quit...
sqlite> .exit  
于 2012-04-11T07:20:35.333 に答える
0

クエリからテーブル キーワードを削除します。

そして、クエリオブジェクトには合計10(?)があり、argsには9つのパラメーターがある引数を指定します。

したがって、合計 10 個の引数を指定します。

于 2012-04-11T07:33:18.557 に答える