0
我正在使用內容提供程序。內容提供商使用SQLBuilder:內容提供商MAX大小編譯的sql語句
public Cursor query(Uri uri, String[] projection, String selection,
String[] selectionArgs, String sortOrder) {
SQLiteQueryBuilder sqlBuilder = new SQLiteQueryBuilder();
sqlBuilder.setTables(TABLE_NAME);
if(uriMatcher.match(uri) == ANIMAL_ID)
sqlBuilder.appendWhere(ID + " = " + uri.getPathSegments().get(0));
if(uriMatcher.match(uri) == ANIMAL_PID)
sqlBuilder.appendWhere(PID + " = " + uri.getPathSegments().get(1));
if(uriMatcher.match(uri) == ANIMAL_NAME)
sqlBuilder.appendWhere(NAME + " = " + uri.getPathSegments().get(1));
if(uriMatcher.match(uri) == ANIMAL_RID)
sqlBuilder.appendWhere("rid = " + uri.getPathSegments().get(1));
if(sortOrder == null || sortOrder == "")
sortOrder = "naam";
Cursor c = sqlBuilder.query(animalDB, projection, selection, selectionArgs, null, null, sortOrder);
c.setNotificationUri(getContext().getContentResolver(), uri);
return c;
}
這是完整的錯誤,我得到:
05-30 12:36:43.564: WARN/Database(6746): Reached MAX size for compiled-sql statement cache for database /data/data/nl.actinum.labbook/databases/blue4green; i.e., NO space for this sql statement in cache: SELECT * FROM dier WHERE (rid = 84) ORDER BY naam. Please change your sql statements to use '?' for bindargs, instead of using actual values
它我不清楚我怎麼能與SQLBuilder結合的問號,可有人告訴我一個例子嗎?