2

渡された整数のリストを使用して「rawQuery」を呼び出すオプションが必要ですが、できないようです。すべての「rawQuery」メソッドには文字列の配列が必要です...

なんで?渡された int オブジェクトごとに「toString」を呼び出すことができますが、ここにはロジックがありません。オブジェクトのリストを受け入れる rawQuery を Google が提供しないのはなぜですか?

そのための制限や制約はありますか?

おそらく私は何かを逃していますか?

ありがとうございました。

4

2 に答える 2

0

おそらく、rawQuery が推奨されるクエリ方法ではないためです。また、sqlite 列には基本的に型がないため、渡されたものに対して toString を呼び出すことを想定したくないでしょう。

SQLite は、列の「型アフィニティ」の概念をサポートしています。列のタイプ アフィニティは、その列に格納されるデータの推奨されるタイプです。ここで重要な点は、タイプは必須ではなく推奨されるということです。任意の列には、任意のタイプのデータを格納できます。選択肢が与えられた一部の列は、あるストレージ クラスを別のストレージ クラスよりも使用することを好むだけです。列の優先ストレージ クラスは、その「アフィニティ」と呼ばれます。

rawQueryの代わりに使いたい理由はありますexecSQLか?

于 2013-01-04T23:11:21.793 に答える
-1

パラメータbindArgsのドキュメントに記載されているように、パラメータのリストで複雑なオブジェクトは受け入れられません。

パラメーター

sql 実行する SQL ステートメント。セミコロンで区切られた複数のステートメントはサポートされていません。

bindArgs bindArgs では 、byte[]、String、Long、Double のみがサポートされています。

http://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html#execSQL(java.lang.String, java.lang.Object[]) .

于 2013-01-04T22:08:46.830 に答える