显示来自 sqlite db 的列值

显示来自 sqlite db 的列值

我试图将所有列值从 Sqlite db 返回到 Ubuntu SDK 中 qml 中的 Qchart - 该数据库包含各种字段,包括公里、英里等。我想将一个字段(例如公里)中的所有值返回到 Qchart - 我知道使用数组可以做到这一点,例如

function testData(){
var kilometres = ["25","45","42","39"];
    return kilometres;
}

这将顺利地在图表中显示值 25、45、42 和 39。但是,无论我怎么努力,我都找不到将数据库中包含的值传递给上面显示的数组的方法。以下是我迄今为止尝试过的方法:-

// Chart Data
function getData() {
    var db = LocalStorage.openDatabaseSync("data.sql", "1.0",  "mileageDataBase", 10000000);
    var res = "";
    db.transaction(
    function(tx) {
    var rs = tx.executeSql('SELECT kilometres FROM mpg');
    res = rs.rows.item().kilometres;
    }
 );
 return res;
 }

(请注意,我在此问题的早期版本中询问了有关将值返回到 TextField 的问题。我以为我可以使用此 TextField 来填充图形,但是经过一些实验后,情况似乎并非如此。对于造成的混淆,我深表歉意。)

答案1

终于设法让它工作了 :-)。我在这里发布我的(工作)代码,以防其他人遇到类似的问题:

// Chart Data
function getData() {
var db = LocalStorage.openDatabaseSync("data.sql", "1.0",  "mileageDataBase", 10000000);
var ret;
var res = [];
var index;
db.transaction(
   function(tx) {
   var rs = tx.executeSql('SELECT * FROM mpg');
   for (var i=0; i<rs.rows.length; i++) {
   var row = rs.rows.item(i);
   ret = row.miles/row.gallons;
   res.push(ret);
  }
}
);
return res;
    }

非常感谢 Velkan 帮助我指明正确的方向(尽管最初的问题有点模棱两可:-))

相关内容