<分区>
我创建了一个执行一些 SQL 查询的 Windows Qt C++ 应用程序。该应用程序在我的开发机器上编译并正确运行。
我的 PATH 环境变量中有这些目录:
C:\oracle\product\10.2.0\db_1\bin
C:\instantclient_11_2
C:\QtSDK\mingw\bin
C:\Qt\4.7.4\bin
我想将我的应用程序作为独立的应用程序分发到其他计算机,因此我在分发中包含了这些 .dll 文件:
QtCore4.dll
QtGui4.dll
QtSql4.dll
qsqloci4.dll
mingwm10.dll
libgcc_s_dw2-1.dll
这是我在代码中设置 QSqlDatabase 的方式:
QSqlDatabase db = QSqlDatabase::addDatabase("QOCI");
db.setHostName(hostname);
db.setPort(port);
db.setDatabaseName(sid);
db.setUserName(username);
db.setPassword(password);
bool ok = db.open();
if (ok) {
//stuff
} else {
QString dbErr = db.lastError().databaseText();
QString drErr = db.lastError().driverText();
return this->messageBox("SQL Query Failed:\n" + dbErr + "\n" + drErr);
}
当我在不是我的开发机器的计算机上运行此应用程序时,dbErr 和 drErr 被设置为“未加载驱动程序”。我还需要哪些其他 .dll 文件才能使其正常运行?
编辑:
我需要 C:\oracle\product\10.2.0\db_1\bin 中的 oci.dll 吗?
C:\instantclient_11_2 中的 oci.dll 怎么样?
我尝试将这两个文件添加到我的可执行文件的目录中,但我仍然遇到相同的错误。我是否需要这两个 .dll 文件?