【问题标题】:Accessing a MS Access database with Qt on Win7 X64在 Win7 X64 上使用 Qt 访问 MS Access 数据库
【发布时间】:2014-05-27 13:28:51
【问题描述】:

我曾经有一个使用以下代码连接到 MS Access 数据库(名为 JSpo2014.accbd)的 Qt 应用程序:

QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
db.setDatabaseName("Driver={Microsoft Access Driver (*.mdb, *.accdb)};FIL={MS Access};DSN='';DBQ=C:\\2014\\bd\\JSpo2014.accdb");
db.open();

我的 Qt 应用程序是使用 Qt Creator 开发的,使用 Qt5.3.0 for MinGW x86。

它曾经在这些配置上运行良好:

  • 安装了 Office 2010x86 的 WinXP
  • 安装了 Office 2010x86 的 Win7x86
  • 安装了 Office 2013x86 的 Win7x86

但它处理任何这些配置:

  • Win7x64 和 Office 2010x86
  • Win7x64 和 Office 2013x86
  • Win7x64 与 Office 2013x64

我收到以下错误消息:

"[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified"

"QODBC3: Unable to connect"

如何让它在安装了 Office 的 Win7x64 上运行?

【问题讨论】:

  • 您是否将数据库驱动程序 dll 放在可执行文件旁边名为 sqldrivers 的文件夹中?
  • @Nejat :我面临的问题甚至在任何部署之前,它都在 Qt Creator 环境中。
  • 我想知道这是不是一个简单的错字,您的 DBQ 路径中有 \\bd\\,这真的应该是“数据库”的 \\db\\ 吗?
  • @Lucretius :感谢您的评论。这不是错字,它是“base de données”(法语数据库)的法语缩写! :-)

标签: c++ windows qt ms-access


【解决方案1】:

您似乎需要一个 64 位驱动程序,因为您显示在 32 位环境中运行的 Windows 上一切正常,但是当您尝试在 64 位环境中运行时,您无法连接。拥有 32 位 office 并不能解决这个问题,因为 windows 仍然在 64 位环境中运行。您会假设它应该能够在 64 位环境中运行 32 位的任何东西,但情况并非总是如此,并且永远不会尝试在 32 位环境中运行 64 位。如果可能的话,我会考虑尝试获得 64 个版本。那应该可以解决您的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-13
    • 1970-01-01
    相关资源
    最近更新 更多