0

私は最後の5-6時間これで立ち往生しています。何も機能していません。ユーザーが入力したクエリに対応するキーを取得して、ユーザーがその特定のIDに対応するデータを変更できるようにしたい。

このコードに何か問題がありますか..??

db.execSQL("CREATE VIRTUAL TABLE " + DATABASE_TABLE
                + " USING fts3 (" + KEY_ID
                + " INTEGER PRIMARY KEY ASC, " + KEY_NAME
                + " TEXT NOT NULL, " + KEY_ADDRESS
                + " TEXT NOT NULL, " + KEY_CONTACT + " TEXT NOT NULL, "
                + KEY_BALANCE + " DOUBLE);");

このKEY_ID列を空にします。このIDを取得したいので(cursor.getString(int)を使用するようにカーソル要素を使用)、ユーザーが選択したIDに対応する値を変更できるようにするため、どこかからIDを取得する必要があります。エイリアスを使用するのではなく、fts3テーブルのデフォルトIDを呼び出す方法はありますか?

4

1 に答える 1

0

エイリアスを使用するのではなく、fts3テーブルのデフォルトIDを呼び出す方法はありますか?

問題は、アダプタで使用されるカーソルには、という名前の整数の主キー列が必要_idですが_id、SQLiteによって認識されるエイリアスではないことです。いいえ、独自のエイリアスを使用する必要があります。docid as _id、、rowid as _idなどを使用できます。


追加ステートメント内
の列を変更できるとは思わないので、ステートメントにエイリアスを適用する必要があります。次に例を示します。docid INTEGER PRIMARY KEYCREATE VIRTUAL TABLESELECT

SELECT docid as _id, bar FROM Foo WHERE bar MATCH 'John';
于 2013-01-15T18:08:04.307 に答える