rawQuery文字列を実行していますが、SQliteはこの警告をスローします:
SQLiteDirectCursorDriver(1058):;で終わるSQL文字列が見つかりました
見積もりの問題のため。したがって、次のように、値による実際の置換がないクエリでSelectionArgsを使用しようとしています。
String query = "SELECT Min(?) as oldest, Max(?) as newest, COUNT(?) as nb_data FROM ? WHERE ? BETWEEN (SELECT Min(?) FROM ?) AND (SELECT Max(?) FROM ?)";
String[] values = new String[] { TS, TS, col_2, table, TS, TS, table, TS, table };
Cursor mCount = database.rawQuery(query, values);
実際には値の置換要件ではなくプレースホルダーがあるため、(クエリの「WHERE」部分でのみ)SelectionArgs文字列を少なくしても機能しません。
SQLiteDirectCursorDriverの警告が表示されないように、このプリペアドステートメントを設定する(引用符を使用したり元のクエリを書き換えたりするのではなく、プレースホルダーを使用する)解決策はありますか?