【发布时间】:2015-11-24 17:36:09
【问题描述】:
所以我有一个 Ionic 应用程序,我想使用预填充的 SQLite 数据库进行部署(尝试手动填充它,但速度很慢)。所以我决定使用 Cordova-sqlite-storage 插件(https://github.com/litehelpers/Cordova-sqlite-storage)。我有一个转储文件,女巫打开得很好,没有错误,但是当我尝试获取任何东西时,我没有得到任何结果。无论如何,这是我的代码:
在 app.js 中:
app.run(function($ionicPlatform) {
$ionicPlatform.ready(function() {
db = window.sqlitePlugin.openDatabase({name: "mydb", createFromLocation: 1});
});
})
在 controllers.js 中
.controller("HomeController", function($scope,Test){
$scope.test = function(){
Test.getAlchohol().then(function(res){
console.log(res.length);
});
};
})
我的数据库获取服务:
.factory('Test', function($cordovaSQLite){
var arr = [];
return{
getAlchohol:function(){
var query = "SELECT * FROM Alchohol";
return $cordovaSQLite.execute(db, query, []).then(function(res){
arr = res.rows;
return arr;
}, function(err){
console.error(err);
});
}
}
})
我的转储文件是这样的:
PRAGMA synchronous = OFF;
PRAGMA journal_mode = MEMORY;
BEGIN TRANSACTION;
CREATE TABLE "Alchohol" (
"id" int(11) NOT NULL ,
"intoxication" int(11) NOT NULL,
"text_id_1" int(11) NOT NULL,
"text_id_2" int(11) NOT NULL,
"text_id_3" int(11) NOT NULL,
PRIMARY KEY ("id")
);
INSERT INTO "Alchohol" VALUES (1,0,20,21,22);
INSERT INTO "Alchohol" VALUES (2,1,18,19,22);
INSERT INTO "Alchohol" VALUES (3,2,23,24,25);
INSERT INTO "Alchohol" VALUES (4,3,26,24,25);
INSERT INTO "Alchohol" VALUES (5,4,27,28,25);
INSERT INTO "Alchohol" VALUES (6,5,29,30,25);
INSERT INTO "Alchohol" VALUES (7,6,29,31,32);
INSERT INTO "Alchohol" VALUES (8,7,33,31,34);
INSERT INTO "Alchohol" VALUES (9,8,35,31,36);
INSERT INTO "Alchohol" VALUES (10,9,33,31,37);
END TRANSACTION;
我已经尝试了我在网上找到的所有可能的解决方案,但没有一个对我有用。任何帮助将不胜感激..
【问题讨论】:
-
你是否尝试过打开带有文件后缀的数据库,例如:db = window.sqlitePlugin.openDatabase({name: "mydb.db", createFromLocation: 1});
-
是的,但这就是我得到的
0 399896 log OPEN database: mydb.sqlite 1 399909 log OPEN database: mydb.sqlite failed, aborting any pending transactions 2 399910 log Could not open database -
两点:你确定使用转储而不是真正的sqlite db是正确的吗?并且文档中有一个提示:如果您没有从预填充的数据库文件中看到数据,请完全删除您的应用并重试!
标签: angularjs sqlite cordova ionic cordova-plugins