我遵循了this指令。我使用Qt版本4.7.4,firebird 2.1.5,VisualStudio 2010 Pro。

.dlls(qsqlibase4qsqlite4)和内容出现在应有的位置,即%QtPATH%\plugins\sqldrivers

但是当我运行我的简单测试项目时

#include <QApplication>
#include <QtGui>
#include <QtSql>

int main(int argc, char** argv)
{
    QApplication app(argc, argv);
    QComboBox myCombo;


    QSqlDatabase db = QSqlDatabase::addDatabase("QIBASE");
    myCombo.addItems(db.drivers());
    db.setDatabaseName("c:/databases/employee.fdb");
    db.setUserName("SYSDBA");
    db.setPassword("masterkey");

    if(!db.open())
    {
        QSqlError er = db.lastError();
        QMessageBox::information(0, "Error", er.text());
    }

    myCombo.show();
    return app.exec();
}

我收到一个错误:
QSqlDatabase: QIBASE driver not loaded
QSqlDatabase: available drivers: QSQLITE

我真的很困惑。驱动程序已构建,看起来路径正确,但是为什么这不起作用?

最佳答案

好吧,这有点奇怪,但是对我有帮助!我只是从该dir fbclient.dll复制了文件Firebird_2_1\bin,然后将其粘贴到了project.exe win32/Debug的dir中。
因此,现在QIBASE可见了!

关于c++ - QIBASE已建立但未找到,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19256855/

10-10 13:31