gpt4 book ai didi

qt - 如何部署使用ODBC插件的QT应用程序(无静态链接)?

转载 作者:行者123 更新时间:2023-12-04 12:40:01 24 4
gpt4 key购买 nike

我的应用程序以这种方式使用Qt SQL

QString servername = "SQL09.FreeMySQL.net";
QString dbname = "psiprobation";
QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
db.setConnectOptions();
QString dsn = QString("DRIVER={MySQL ODBC 5.1 Driver};SERVER=%1;DATABASE=%2;USER=jnchappell21;PASSWORD=XXXXXXX").arg(servername).arg(dbname);
db.setDatabaseName(dsn);


我也将此包含在我的代码中...

a.addLibraryPath(a.applicationDirPath()+"/plugins");


“插件”文件夹包含另一个文件夹“ sqldrivers”。在“ sqldrivers”内部是myodbc5.dll,myobdc5S.dll,qsqlodbc4.dll和qsqlodbcd4.dll。 (注意:“ plugins”文件夹与可执行文件位于同一目录中)

现在已经到了部署阶段,该应用程序可以在安装Qt的系统上完美运行。但是,在其他系统(未安装QT的系统)上,即使该应用程序将运行,我也无法连接到数据库(即GUI打开并显示错误消息)。

错误消息是:“ [Microsoft] [ODBC驱动程序管理器]找不到数据源名称,并且未指定默认驱动程序QODBC3:无法连接”

这个问题有什么解决方案?

最佳答案

在Qt中调试插件问题可能很痛苦。我尝试使用addLibraryPath()强制插件位置从未成功。在我弄清原因之前,我发现Qt应用程序将在应用程序根目录中查找所涉及插件类型的“叶子”目录。对于您的情况,只需将sqldrivers目录放在应用程序的根目录中(而不将其嵌套在plugins目录中)。

一种尝试确定是否确实存在插件位置问题的方法,尝试将驱动程序文件移出开发计算机上的位置(或重命名),然后查看是否出现相同的错误。

尽管针对的是窗口小部件插件,但此页面有一些plugin trouble shooting提示。

关于qt - 如何部署使用ODBC插件的QT应用程序(无静态链接)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7946176/

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