2012-09-12 35 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