gpt4 book ai didi

javascript - Sqlite:检查数据库是否存在

转载 作者:IT王子 更新时间:2023-10-29 06:29:13 25 4
gpt4 key购买 nike

我正在使用 phonegap 开发一个移动应用程序,它将一些数据存储到本地数据库 (sqlite DB) 中。我需要知道数据库是否存在,并以此来确定需要执行哪个进程。

var database = window.openDatabase("my_db", "1.0", "sample DB", 30000);
if (check_db_exist()) {
process_1();
}
else
{
process_2();
}

最佳答案

我需要做类似的事情,我需要检查应用程序是否已经创建了一个数据库(旧数据库),如果是,则将所有数据导出到新数据库(新的和改进的数据库),然后删除这个数据库。

背景信息:我正在从简单的键值表转移到具有级联等的复杂关系数据库。

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);
}

注意:如果文件存在(成功),那么我们需要在此处执行导出代码,然后删除文件,因此此方法将始终失败。如果文件不存在 - 用户已经导出到新数据库或者他们是我们的新用户并且从未拥有过旧数据库。

// 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);
}

问题的答案:

window.resolveLocalFileSystemURL(cordova.file.applicationStorageDirectory + "/databases/my_db.db", process_1, process_2);

关于javascript - Sqlite:检查数据库是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22125706/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com