我正在使用cordova + angular js开发移动应用程序。为了创建这个POC,我正在使用这个SQL tutorial。现在我想从sqllite db中获取表名。为此我写下面的代码。
vm.tableName = function(){
var query = "SELECT * FROM sqlite_master WHERE type=?";
$cordovaSQLite.execute(db, query, ['table']).then(function(res) {
alert("res "+JSON.stringify(res));
}, function (err) {
alert("err "+JSON.stringify(err));
});
}
我可以在db中成功读取和写入数据,但我无法获取表名。我想,我想念一些事情,但我得到了相关答案,但这对我不起作用link。我不明白如何附加数据库。当我运行上面的代码时,我从db得到了一些响应。
答案 0 :(得分:2)
我使用此查询从数据库中获取所有表。 SELECT tbl_name FROM sqlite_master WHERE type = 'table';
。它适用于android和ios,但在android中它提供了一个额外的表" android_metadata"。为此,我使用下面的代码
for (var i = 0; i < res.rows.length; i++) {
if (res.rows.item(i).tbl_name !== "android_metadata")
ARRAYNAME.push(res.rows.item(i).tbl_name);}
答案 1 :(得分:0)
尝试此查询
SELECT * FROM sqlite_master WHERE type='table'
以上查询应返回以下列