2012-09-12 32 views
0

我有一個rawQuery串運行,但SQlite的拋出這樣的警告:SQLiteDirectCursorDriver使用 - 使用佔位符

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); 

我無法得到它的工作,甚至使用更少的selectionArgs兩個字符串(僅在「WHERE 「查詢的一部分),因爲沒有真正的價值替代要求,但佔位符。

是否有解決方案來設置此準備好的語句(使用佔位符而不是使用引號或重寫原始查詢)以避免獲取SQLiteDirectCursorDriver警告?

回答

0

您可以僅將參數用於表達式,而不用於標識符。

要避免此警告,只需從SQL查詢字符串的末尾省略分號即可。

+0

Thx其實這也是我結束的地方:-)。 – hornetbzz