Daw*_*yży 1 sqlite android android-contentprovider
我想使用内容提供程序删除第一个"n"行.
这是我的代码:
private void deleteOldItems(int number) {
String where = HistoryTable.COLUMN_ID + "<=?";
getContentResolver()
.delete(Uri.parse("content://com.ipiit.client.contentprovider.HistoryContentProvider/histories"),
where, new String[] {String.valueOf(number)});
}
Run Code Online (Sandbox Code Playgroud)
我工作但只有一次.如何始终删除第一行?
如果这是你的"拥有" ContentProvider
,即你确定表名和类似的东西,你总是可以做一个相当难看的子选择,如下所示:
private void deleteOldItems(int number) {
// You should probably sort the subselect on something
// suitable indicating its age. The COLUMN_ID should do.
String where = HistoryTable.COLUMN_ID + " IN (SELECT " + HistoryTable.COLUMN_ID + " FROM " +
HistoryTable.TABLE_NAME + " ORDER BY " + HistoryTable.COLUMN_ID + " LIMIT ?)";
getContentResolver()
.delete(Uri.parse("content://com.ipiit.client.contentprovider.HistoryContentProvider/histories"),
where, new String[] {String.valueOf(number)});
}
Run Code Online (Sandbox Code Playgroud)
另一方面,如果它是你自己的ContentProvider
..只需添加支持在向URI添加"limit"参数时将其传递给#delete(..),而不是诉诸于像这样丑陋的黑客.
归档时间: |
|
查看次数: |
1127 次 |
最近记录: |