我有兴趣将外部SQLite数据库导入到我的项目中。 当使用Qt Quick的本地存储:将外部SQLite数据库导入到我的项目中
LocalStorage.openDatabaseSync("QQmlExampleDB", "1.0", "The Example QML SQL!", 1000000);
的问题是,该程序生成一个新的数据库,如果有可能我感兴趣的是打开现有的数据库。
有什么想法?
非常感谢!
我有兴趣将外部SQLite数据库导入到我的项目中。 当使用Qt Quick的本地存储:将外部SQLite数据库导入到我的项目中
LocalStorage.openDatabaseSync("QQmlExampleDB", "1.0", "The Example QML SQL!", 1000000);
的问题是,该程序生成一个新的数据库,如果有可能我感兴趣的是打开现有的数据库。
有什么想法?
非常感谢!
感谢在座的各位,随着信息你有我,我可以解决我的问题,我都不得不做的事情是:所有的main.cpp的 首先,我把我的离线存储路径:
engine.setOfflineStoragePath(QString("./"));
然后我还添加以下代码:
QDir dir("./Databases");
if (!dir.exists()) {
dir.mkpath(".");
}
QString new_name = QString(QCryptographicHash::hash(("nameofthecopiedDB"),QCryptographicHash::Md5).toHex());
QFile file(":/SQLite/nameofsourceDB.sqlite");
file.copy("./Databases/" + new_name + ".sqlite");
file.close();
鉴于我在DB我会在我的项目从我的资源文件夹的SQLite使用(:,表明资源)。
,然后在QML文件中,openDatabaseSync()函数:
basedades = Sql.LocalStorage.openDatabaseSync('nameofthecopiedDB',"1.0","Els meus entrenaments",1000000,"QSQLITE")
谢谢!
感谢您的回答,但有可能当前函数openDatabaseSync无法正常工作? 因为当我这样做,我穿上openDataBaseSync无论至极的名字,程序会创建一个具有ranom名称的新数据库,例如: a32d695d324fbf044d62821c5ee7e4de.sqlite 感谢 –
我记得路径到数据库'QQmlEngine :: offlineStoragePafh' + md5(name)+“.sqlite”。其中'name'是'openDatabaseSync'的第一个参数,所以你应该把你的数据库放在正确的名字中,它会起作用。 – folibis
@folibis用正确的名字创建空白文件就足够了,而不是交换两个文件。对? – skypjack