我试图将所有列值从 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 帮助我指明正确的方向(尽管最初的问题有点模棱两可:-))