【发布时间】:2014-02-11 03:15:11
【问题描述】:
我在 Visual Studio 2008 中制作了一些程序的安装包。所以在我的 PC 上安装后一切正常。在其他 PC 上,当您单击数据库连接选项时,它就会崩溃。
嗯,这是错误
我认为它出现在这一行
database = QSqlDatabase::addDatabase("QPSQL");
在数据库初始化部分,因为有关于 DB apperas 的消息,在这一行之前一切似乎都正常。
这里是完整的功能
void DatabaseManagement::initDatabase(){
QMessageBox::information(this, "error tracking step 5", " DB ADDED");
database = QSqlDatabase::addDatabase("QPSQL");
QStringList sdrivers = QSqlDatabase::drivers();
//output all avalible drivers
QString driver = sdrivers[0];
for(int i = 0; i< sdrivers.size();i++)
QMessageBox::information(this, "Driver info", sdrivers[i]);
}
database 变量在这里是DatabaseManagement 类的全局变量。
同样在这个类中,我得到了getDatabase 函数,它返回database 变量,我在其他类中使用它,比如说mainClass(如果这可能是问题的原因)。
这个问题的原因可能是什么?我怎么能解决这个问题?
顺便说一句,我用Qt 4.7.4
统一更新:
好了,问题解决了!我忘记添加 sqldrivers 文件夹!当然我添加了所有必要的.dlls,但由于某种原因程序只能在这个文件夹中看到它。希望它对某人有帮助。
顺便说一句,DependencyWalker 表明没有工作版本没有任何问题(没有sqldrivers 文件夹)。
【问题讨论】:
-
Dependency Walker 没有看到我认为的运行时内容。 Process Explorer 就是为此提供的工具(在任务管理器无法解决的情况下也很有用)。
标签: c++ qt postgresql qt4 qlist