使用QODBC/QODBC3 Qt驱动程序连接到Excel文件

Dan*_*man 5 c++ sql excel qt odbc

如何使用QODBC/QODBC3 Qt驱动程序正确连接到Excel文件?

在第一次我建了这样的驱动程序(cmd)

> cd%QTPATH%\ src\plugins\sqldrivers\odbc

> qmake odbc.pro

> NMAKE

然后qsqlodbc4.dll创建了文件 %QTPATH%\plugins\sqldrivers

我用过这段代码

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

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

        //excel stuff
        QSqlDatabase dbExcel = QSqlDatabase::addDatabase("QODBC","dbExcel");
            // i thought mayde that would work
           // dbExcel.setDatabaseName("C:\databases\test.xlsx");

           //i tried connection string too
          dbExcel.setDatabaseName(QString("DRIVER={Microsoft Excel Driver (*.xlsx)}; READONLY=FALSE; FIL={MS Excel}; DBQ=C:\databases\test.xlsx"));

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



         //...................



        return app.exec();
  }
Run Code Online (Sandbox Code Playgroud)

在那里我把那个错误(它翻译成:

[Microsoft][ODBC driver manager] Data source not found and default driver not set. QODBC3: Unable to connect
Run Code Online (Sandbox Code Playgroud)

)

错误

UPD

它还说驱动程序是可用的

QSqlDatabase: available drivers: QIBASE QSQLITE QODBC3 QODBC
Run Code Online (Sandbox Code Playgroud)

小智 0

错误的: DBQ=C:\databases\test.xlsx

\正确:在 addr 中使用 double