1
안녕하세요, 그래서 내 안드로이드 응용 프로그램에 대한 빠른 검색을 위해 Sqlite와 FTS3을 사용하고 있지만, 단어를 편집하거나 하나를 삭제하면 내 실제 데이터베이스에서 문제가 발생하지 않지만 FTS에서는 아무 것도 발생하지 않습니다.FTS에 대한 Sqlite Android db가 업데이트 또는 삭제되지 않습니까?
나는 이름 사전 편집/업데이트 또는 검색 할 때 후 삭제
가 무엇인지 잘못 또는 내가 가지고있는 경우에 대해 이동하지 ... 그것은 여전히 DB에 존재 의미를 나타/*
* deleting all words from dictionary
*/
public void deleteAllWords(DatabaseWords db_delete) {
Log.d("enter delete in dbhelper",
"enter delete in dbhelper "
+ String.valueOf(db_delete.get_id()));
SQLiteDatabase db = this.getWritableDatabase();
db.delete(TABLE_WORDS, KEY_DICTIONARYID + "=?",
new String[] { String.valueOf(db_delete.get_dictionaryId()) });
}
/*
* deleting all words FTS from dictionary
*/
public void deleteAllWords_fts(DatabaseWordsFTS db_delete) {
SQLiteDatabase db = this.getWritableDatabase();
db.delete(
TABLE_WORDS_FTS,
KEY_DICTIONARY_ID_FTS + "=?",
new String[] { String.valueOf(db_delete.get_dictionary_id_fts()) });
}
/*
*
*
* /* deleting a dictionary
*/
public void deleteDictionary(DatabaseDictionary dictionary) {
SQLiteDatabase db = this.getWritableDatabase();
db.delete(TABLE_DICTIONARY, KEY_ID + "=?",
new String[] { String.valueOf(dictionary.get_id()) });
}
/*
* deleting a word
*/
public void deleteWord(DatabaseWords db_delete) {
Log.d("enter delete in dbhelper",
"enter delete in dbhelper "
+ String.valueOf(db_delete.get_id()));
SQLiteDatabase db = this.getWritableDatabase();
db.delete(TABLE_WORDS, KEY_ID + "=?",
new String[] { String.valueOf(db_delete.get_id()) });
}
/*
* deleting a word FTS
*/
public void deleteWord_fts(DatabaseWordsFTS db_delete) {
SQLiteDatabase db = this.getWritableDatabase();
db.delete(TABLE_WORDS_FTS, KEY_ID + "=?",
new String[] { String.valueOf(db_delete.get_id()) });
}
/*
* updating a word
*/
public int updateWord(DatabaseWords word) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(KEY_DICTIONARYID, word.get_dictionaryId());
values.put(KEY_WORD1, word.get_word1());
values.put(KEY_WORD2, word.get_word2());
values.put(KEY_WORD3, word.get_word3());
values.put(KEY_WORD4, word.get_word4());
// updating row
return db.update(TABLE_WORDS, values, KEY_ID + "=?",
new String[] { String.valueOf(word.get_id()) });
}
/*
* updating a word FTS
*/
public int updateWord_fts(DatabaseWordsFTS word_fts) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(KEY_DICTIONARY_ID_FTS, word_fts.get_dictionary_id_fts());
values.put(KEY_WORD1_FTS, word_fts.get_word1_fts());
values.put(KEY_WORD2_FTS, word_fts.get_word2_fts());
values.put(KEY_WORD3_FTS, word_fts.get_word3_fts());
values.put(KEY_WORD4_FTS, word_fts.get_word4_fts());
// updating row
return db.update(TABLE_WORDS_FTS, values, KEY_ID + "=?",
new String[] { String.valueOf(word_fts.get_id()) });
}
내가, FTS와 하나가 FTS 하나입니다 작동 상단에있는 일반을 왼쪽 : 다른 방법으로, 여기에 내 코드입니다. 여기
나는 나의 활동 파일
// store in db
// creating word
DatabaseWords db_update = new DatabaseWords(word_id, word_d_id,
w_1_s, w_2_s, w_3_s, w_4_s);
DatabaseWordsFTS db_w_fts = new DatabaseWordsFTS(word_id,
word_d_id, w_1_s, w_2_s, w_3_s, w_4_s);
// insert into db create method in database helper
db.updateWord(db_update);
db.updateWord_fts(db_w_fts);
단어 업데이트하지만 하나가되지 않는 FTS에있는 업데이트에 대한 코드를 추가?
다른 테이블을 업데이트 한 후에 fts 테이블을 업데이트 하시겠습니까? updateWord_fts (...) –
방금 전에 추가했지만 단어 하나가 전달되고 전달되는 내용이 올바른지 – Lion789
업데이트 방법의 반환 값을 확인하십시오. 업데이트가 실제로 진행되는지 확인하십시오. 또한 체크 삽입 및 삭제, 어쩌면 가상 테이블이 읽기 전용입니다 ... –