Mou*_*wi7 5 javascript sqlite cordova
我正在开发一个使用phonegap的移动应用程序,它将一些数据存储到本地数据库(sqlite DB).我需要知道数据库是否存在,以及确定需要执行哪个进程.
var database = window.openDatabase("my_db", "1.0", "sample DB", 30000);
if (check_db_exist()) {
process_1();
}
else
{
process_2();
}
Run Code Online (Sandbox Code Playgroud)
我需要做类似的事情,我需要检查应用程序是否已经创建了数据库(旧数据库),如果是,则将所有数据导出到新数据库(新的和改进的数据库),然后删除该数据库。
背景信息:我正在从简单的键值表转向具有级联等的复杂关系数据库。
function onDeviceReady() {
// CHECK IF LEGACY DATABASE EXISTS. IF DOES EXPORT EXISTING DATA TO NEW DB THEN DELETE LEGACY
window.resolveLocalFileSystemURL(cordova.file.applicationStorageDirectory + "/databases/<DatabaseName>.db", exportToNewDB, setupDB);
}
Run Code Online (Sandbox Code Playgroud)
注意:如果文件存在(成功),那么我们需要在这里执行导出代码,然后删除文件,因此此方法将始终失败。如果文件不存在 - 用户已导出到新数据库,或者他们是我们的新用户并且从未拥有旧数据库。
// Fail Method
function setupDB() {
newDB = window.sqlitePlugin.openDatabase({ name: "<NewImprovedDBName>.db" });
newDB.transaction(sql.initDB, sql.errorCallback, sql.successCallBack);
}
// Success Method
function exportToNewDB() {
db = window.sqlitePlugin.openDatabase({ name: "<LegacyDBName>.db" });
db.transaction(function (tx) {
setupDB();
// Insert Export code Here
// Delete DB
window.sqlitePlugin.deleteDatabase("<LegacyDBName>.db", sqlSuccess, sqlFail);
}, sqlFail);
}
Run Code Online (Sandbox Code Playgroud)
回答你的问题:
window.resolveLocalFileSystemURL(cordova.file.applicationStorageDirectory + "/databases/my_db.db", process_1, process_2);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5648 次 |
| 最近记录: |