Cordova/SQLite:rowid undefined
问题描述:
在Android设备上使用SQLite和Cordova。Cordova/SQLite:rowid undefined
我有一个数据库,其中包含一些表的字段。
没有任何字段是主键,因此记录具有由SQLite生成的默认rowid
。
我试图访问rowid
(我饶了你所有的数据库代码和集中查询):
tx.executeSql('SELECT * FROM ServicesRondes', [], function(tx, res) {
console.log(res.rows.length); // shows 5
if (res.rows.length > 0) {
for(var i = 0; i < res.rows.length; i++) {
console.log(res.rows.item(i).time); // shows the time record
console.log(res.rows.item(i).rowid); // shows undefined
}
}
}
所以问题是日志中的rowid
是undefined
。
我发现一个人回答了自己的问题只有一个链接:https://forum.qt.io/topic/53217/solved-how-to-access-sqlite-rowid
正如你所看到的,他做了一个查询与rowid
来解决他的问题。
但这不是我想要的(我想选择所有),而且,我不明白为什么它会以这种方式工作,而不是其他方式。
当然,我可以创建自己的自动增量主键字段,但我想避免它,这不是我的问题。
答
SELECT *
返回您在表定义中声明的所有列。
如果你想rowid
柱与*
展现出来,你必须包括它还有:
CREATE TABLE ServicesRondes (
rowid INTEGER PRIMARY KEY,
userUuid UUID,
secteurId UUID,
time TIMESTAMP,
[...]
);
哦,谢谢,我不知道声明的列那件事。所以也许最后做我自己的autoincremented列会比选择每列包含rowid更好。 – Destal