Cordova/SQLite:rowid undefined

问题描述:

在Android设备上使用SQLite和Cordova。Cordova/SQLite:rowid undefined

我有一个数据库,其中包含一些表的字段。

没有任何字段是主键,因此记录具有由SQLite生成的默认rowid

下面是表的在Chrome中的调试器的截图:table in Chrome debugger

我试图访问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 
     } 
    }    
} 

所以问题是日志中的rowidundefined

我发现一个人回答了自己的问题只有一个链接: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, 
    [...] 
); 
+0

哦,谢谢,我不知道声明的列那件事。所以也许最后做我自己的autoincremented列会比选择每列包含rowid更好。 – Destal