我最近更新我的數據庫到FTS3,因爲我執行了搜索功能。FTS3 | rowid問題|刪除不工作
我FTS3表:
db.execSQL("CREATE VIRTUAL TABLE " + TABLE_FTS + " USING fts3(" + COL_ID + ", " + COL_KEY_NAME + ", "
+ COL_KEY_WEBURL + " , " + COL_KEY_MAINURL + ", " + COL_KEY_CODEC + " " + ");");
我從我的列表視圖與ContextMenu
總是deletet entrys。我用這樣的方法:
AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo)item.getMenuInfo();
delete(info.id);
updateList();
public void delete(long id) {
int numDeleted = database.delete("stations" , "_ID = ?", new String[] { Long.toString(id) });
Log.d(TAG, "delete(): id=" + id + " -> " + numDeleted);
}
public void updateList() {
data.requery();
dataSource.notifyDataSetChanged();
}
的方法,info.id
不要誤會我的位置,它使我'改爲info.position
。位置是正確的,但delet不工作。好的,比我試過簡單的刪除,而不是通過Android方法。
database.execSQL("DELETE FROM " + DatabaseHelper.TABLE_FTS + " WHERE " + DatabaseHelper.COL_ID + "='" + id + "'");
也不工作。在FTS3中不存在具有自動增量編號的列COL_KEY_ID = BaseColumns._ID
?我想通了,我可以使用rowid
但它沒有按預期工作。如果我刪除了我的第一個條目,那麼下面的代碼會被奇怪地刪除。
我如何才能像以前一樣恢復工作? 編輯:發現現在修復..