0

私は次のように作成されたデータベースを持っています:

  mDatabase.execSQL(FTS_TABLE_CREATE);

ここでFTS_TABLE_CREATE

   private static final String FTS_TABLE_CREATE =
                "CREATE VIRTUAL TABLE " + FTS_VIRTUAL_TABLE +
                        " USING fts3 (" +
                        KEY_WORD + ", " +
                        KEY_DEFINITION + ");";

次に、それに新しい行を追加します。

public long addTitle(String word) {
            ContentValues initialValues = new ContentValues();
            initialValues.put(KEY_WORD, "test");
            initialValues.put(KEY_DEFINITION, "null");

            return getWritableDatabase().insert(FTS_VIRTUAL_TABLE, null, initialValues);
        }

そして今、私はそれを削除する必要があります:

public void removeTitle(String title) {
            getWritableDatabase().delete(FTS_VIRTUAL_TABLE, KEY_WORD + "=" + title, null);
        }

しかし、私は例外を受け取りました:

android.database.sqlite.SQLiteException:そのような列はありません:テスト:、コンパイル中:DELETE FROM FTStitleslist WHERE Suggest_text_1 = test

私は何か間違ったことをしていますか?

4

1 に答える 1

0

これを変える:

getWritableDatabase().delete(FTS_VIRTUAL_TABLE, KEY_WORD + "=" + title, null);

これに(推奨):

getWritableDatabase().delete(FTS_VIRTUAL_TABLE, KEY_WORD + " = ?", new String[]{title});

またはこれ(非推奨):

getWritableDatabase().delete(FTS_VIRTUAL_TABLE, KEY_WORD + "= '" + title + "'", null);
于 2012-09-11T15:39:58.980 に答える