我有興趣將外部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