2013-10-08 27 views
1

我跟着this指令。我使用Qt 4.7.4版,firebird 2.1.5,VisualStudio 2010 Pro。QIBASE內置但未找到

.dlls(qsqlibase4qsqlite4)和東西出現在他們應該在的地方,在%QtPATH%\plugins\sqldrivers

enter image description here

但是當我運行我的簡單測試項目

#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 

我真的很困惑。驅動程序已建成,它看起來像路徑是正確的,但爲什麼這不起作用?

回答

1

嗯,這有點奇怪,但它幫助我!我剛剛從這個目錄Firebird_2_1\bin中複製了一個文件fbclient.dll,並將其粘貼到了我的project.exe win32/Debug的目錄中。 所以現在QIBASE是可見的!

+1

這是預期的行爲。默認情況下,所需的DLL將從可執行文件的工作目錄中加載。而Visual Studio項目通常使用「調試」和「發佈」作爲備用方向。 – Simon