在过去的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元素,就像我们使用cursor.getString(int)一样),让用户修改与所选id相对应的值,所以我需要从某个地方获取id。有没有办法调用fts3表的默认ID而不是使用别名?
发布于 2013-01-16 02:08:04
有没有办法调用fts3表的默认ID而不是使用别名?
问题是,适配器中使用的游标必须有一个名为_id的整数主键列,但_id不是SQLite可识别的别名。所以不,你需要使用你自己的别名。您可以使用docid as _id、rowid as _id等。
添加
由于我不相信您可以在CREATE VIRTUAL TABLE语句中以任何方式更改docid INTEGER PRIMARY KEY列,因此您需要在SELECT语句中应用别名,例如:
SELECT docid as _id, bar FROM Foo WHERE bar MATCH 'John';https://stackoverflow.com/questions/14343918
复制相似问题