You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Qt 6.7连接.mdb文件报错IM002 QODBC: Unable to connect求助

Qt读取.mdb文件遇到IM002 QODBC连接错误的解决办法

使用Qt读取.mdb文件时,触发IM002 QODBC: Unable to connect错误。已按常规步骤检查位数匹配、驱动名称,问题仍未解决。

排查过程

  • 确认目标文件存在、QODBC驱动有效,验证结果均为true
  • 针对64位Qt 6.7开发套件,使用64位MS Access创建测试.mdb文件,依旧报错
  • 测试读取不存在的文件、替换路径分隔符,均触发相同的IM002错误

解决方案

经定位,该问题是Qt 6.7版本的自身bug,相同代码在Qt 6.6.3中可正常运行。建议遇到同类问题的用户优先降级Qt版本至6.6.3或更早的稳定版本。

代码片段

QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
QString path = "F:\\SKJ Trial\\test data\\Dummy_64bit.mdb";
QString str_comm = "DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};FIL={MS Access};DBQ=";

qDebug() << "Is Db valid: " + QVariant(db.isValid()).toString();
qDebug() << "path: " + path;
qDebug() << "Is file exist: " + QVariant(QFile(path).exists()).toString();

str_comm += path;
db.setDatabaseName(str_comm);
qDebug() << "String command: " + str_comm;
db.open();

if(db.isOpen()){
    qDebug() << "Success";
} else {
    qDebug() << "Failed";
    qDebug() << db.lastError().text();
}

控制台日志示例

"Is Db valid: true"
"path: F:\\SKJ Trial\\test data\\Dummy_64bit.mdb"
"Is file exist: true"
"String command: DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};FIL={MS Access};DBQ=F:\\SKJ Trial\\test data\\Dummy_64bit.mdb"
Failed
"[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified, IM002 QODBC: Unable to connect"

内容的提问来源于stack exchange,提问作者Gunawan Wicaksono

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 01:51:07