部署QML应用程序时找不到SQLite数据库

时间:2014-08-27 11:57:26

标签: javascript sqlite qml

我一直在研究Qt Quick 2的应用程序,完全用QML和Javascript函数实现。 (除了下面详细介绍的main.cpp)

对于模型,我一直在使用LocalStorage功能。我的应用程序在我的计算机上工作正常,我将其导出到其他计算机。在其他计算机上,应用程序启动,但没有任何数据库功能正在运行。

然后我发现localStorage的默认路径是User\AppData\Local\MyAppName\QML\OfflineStorage\Databases

可以使用setOfflineStoragePath();

进行更改

Main.cpp的:

int main(int argc, char *argv[]) {
  QGuiApplication app(argc, argv);

  QQmlApplicationEngine engine;
  engine.load(QUrl(QStringLiteral("qrc:///main.qml")));
  engine.setOfflineStoragePath(QString("./"));  

  return app.exec();
}

此外,这在我的计算机上工作正常,但在其他计算机上不会产生任何结果。 (数据库文件夹是在指定的路径创建的,其中包含.sqlite和.ini文件)

我所看到的是,在其他计算机上,似乎只创建了.ini,而不是.sqlite

我会想到我的代码中出现错误,但每次我直接从Qt创建者编译项目(无论是计算机)时它都运行良好。

谢谢

PS:我在编译器菜单中使用调试conf(而不是发行版)(左下)

1 个答案:

答案 0 :(得分:2)

在使用sqlite部署qt应用程序时,必须在app目录和Qt5Sql.dll中部署qsqlite.dll(这可以在插件目录中找到。例如:Qt5.3.1 \ 5.3 \ mingw482_32 \ plugins \ sqldrivers)在<app directory>/sqldrivers。这可能是解决您问题的方法。从这个问题我不确定你是否已经这样做了。