C++ Qt ODBC驱动程序未加载

C++ Qt ODBC驱动程序未加载,c++,qt,odbc,C++,Qt,Odbc,QODBC驱动程序有以下问题: bool Dialog::createOdbcConnection(QSqlDatabase * db, QString odbcName,QString user,QString pass) { db = new QSqlDatabase(); db->addDatabase("QODBC"); db->setDatabaseName(odbcName); if(!user.isEmpty()) db-

QODBC驱动程序有以下问题:

bool Dialog::createOdbcConnection(QSqlDatabase * db, QString odbcName,QString user,QString pass)
{
    db = new QSqlDatabase();
    db->addDatabase("QODBC");
    db->setDatabaseName(odbcName);
    if(!user.isEmpty())
        db->setUserName(user);
    if(!pass.isEmpty())
        db->setPassword(pass);

    qDebug() << QSqlDatabase :: drivers();

    if (!db->open())
    {
            QMessageBox mgs;
            qDebug() << db->lastError().text();
            mgs.setText(db->lastError().text());
            mgs.exec();
            return false;
    }

    return true;
}
bool对话框::createOdbcConnection(QSqlDatabase*db,QString odbcName,QString用户,QString密码)
{
db=新的QSQLDABASE();
db->addDatabase(“QODBC”);
db->setDatabaseName(odbcName);
如果(!user.isEmpty())
db->setUserName(用户);
如果(!pass.isEmpty())
db->设置密码(通过);
qDebug()打开()
{
QMessageBox mgs;
qDebug()lastError().text();
mgs.setText(db->lastError().text());
mgs.exec();
返回false;
}
返回true;
}

qDebug()在createOdbcConnection方法中QSqlDatabase参数有什么用途?
我宁愿将其删除,在类定义中定义QSqlDatabase对象:

private:
    QSqlDatabase db_;
并在类构造函数中初始化它:

db_ = QSqlDatabase::addDatabase("QODBC");

那应该行

在createOdbcConnection方法中,QSqlDatabase参数有什么用途? 我宁愿将其删除,在类定义中定义QSqlDatabase对象:

private:
    QSqlDatabase db_;
并在类构造函数中初始化它:

db_ = QSqlDatabase::addDatabase("QODBC");

那应该行

我看到这个问题已经解决,但我正在添加注释,以防有人遇到与我相同的问题,并在驱动程序未加载时寻找解决方案,但所描述的解决方案还不够

这取决于您在哪里编译并打算使用与ODBC相关的Qt代码。我遇到了类似的问题

我的代码在Windows上运行得很好,但在其他地方(Linux)编译时返回一个错误

在Linux上运行编译后的代码时,您会遇到麻烦,因为驱动程序libsqlodbc.so,即使它存在于/plugins/sqldriver目录中,也取决于必须独立安装的特定库

您可以通过以下方式查看缺少的库:

ldd ./path-to-libsqlodbc.so/libsqlodbc.so
您可以查看是否缺少任何其他库来运行二进制文件

ldd ./path-to-your-binary-file/name-of-your-binary-file
使用此信息在Linux上安装ODBC(如果需要):

我看到这个问题已经解决,但我正在添加注释,以防有人遇到与我相同的问题,并在驱动程序未加载时寻找解决方案,但所描述的解决方案还不够

这取决于您在哪里编译并打算使用与ODBC相关的Qt代码。我遇到了类似的问题

我的代码在Windows上运行得很好,但在其他地方(Linux)编译时返回一个错误

在Linux上运行编译后的代码时,您会遇到麻烦,因为驱动程序libsqlodbc.so,即使它存在于/plugins/sqldriver目录中,也取决于必须独立安装的特定库

您可以通过以下方式查看缺少的库:

ldd ./path-to-libsqlodbc.so/libsqlodbc.so
您可以查看是否缺少任何其他库来运行二进制文件

ldd ./path-to-your-binary-file/name-of-your-binary-file
使用此信息在Linux上安装ODBC(如果需要):