私は最近、FTS3に自分のデータベースを更新しました。FTS3 | |削除作業をしないでください
マイFTS3テーブル:ContextMenu
と私のリストビューから
db.execSQL("CREATE VIRTUAL TABLE " + TABLE_FTS + " USING fts3(" + COL_ID + ", " + COL_KEY_NAME + ", "
+ COL_KEY_WEBURL + " , " + COL_KEY_MAINURL + ", " + COL_KEY_CODEC + " " + ");");
I常にdeletet entrys。 I'amはinfo.position
にそれを変更して、
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
は私の地位を得ることはありません:私はこのような方法を使用していました。ポジションは正しいが、削除は機能しない。私はAndroidメソッド経由ではなく単純な削除を試してみました。
database.execSQL("DELETE FROM " + DatabaseHelper.TABLE_FTS + " WHERE " + DatabaseHelper.COL_ID + "='" + id + "'");
作業しないでください。オートインクリメント番号のCOL_KEY_ID = BaseColumns._ID
という列はもはやFTS3には存在しないようですか?私はrowid
を使うことができたが、意図したとおりに動作していないことを理解した。最初のエントリを削除すると、下のエントリが削除されます。
どのように私はこれを前と同じように動作させることができますか? 編集:が見つかりました。