在 VS2012 和 windows 8 x64 中使用 MFC CDatabase 连接访问数据库

Posted

技术标签:

【中文标题】在 VS2012 和 windows 8 x64 中使用 MFC CDatabase 连接访问数据库【英文标题】:connecting to access database using MFC CDatabase in VS2012 and windows 8 x64 【发布时间】:2013-03-01 19:17:56 【问题描述】:

使用 MFC 编程连接 access 数据库,使用安装在 windows 8 x64 上的 Visual Studio 2012 更新 1,以下代码抛出异常,这在 vs2010 和 windows 7 x64 之前没有发生过。 ODBC 管理器有什么变化吗?我应该如何更改连接字符串。

CDatabase db;
db.OpenEx(TEXT("ODBC;Driver=Microsoft Access Driver (*.mdb, *.accdb);Dsn='';Dbq='d:\\databases\\a.mdb'");

以及异常信息:

'Data source name not found and no default driver specified'

它也不适用于 accdb 文件。

【问题讨论】:

除非是拼写错误,否则您错过了“Microsoft”前面的“M”。 您确定 x64 中的 ODBC 驱动程序与 x86 中的调用相同吗?另外,去掉 Dsn=''。您应该使用 Driver 或 Dsn,但不能同时使用 其实我在这里打错字了(少了 M)。不是原始代码。 几乎所有的连接字符串模板都有 Dsn='' 并且删除它无助于解决问题。 【参考方案1】:

cmets 中的 cha 是正确的,因为默认情况下,Windows 8 中仅存在 x64 ODBC 驱动程序,用于在 win32 平台上编译的 MFC 应用程序。必须在 x86 中安装 ODBC 驱动程序。可以从这里下载:http://www.microsoft.com/en-us/download/details.aspx?id=13255

【讨论】:

以上是关于在 VS2012 和 windows 8 x64 中使用 MFC CDatabase 连接访问数据库的主要内容,如果未能解决你的问题,请参考以下文章

在 Windows 上从源代码构建 NSIS(VS2012)

VS 2010 看不到 SQL Server 2012 Express

如何用vs2012编写能在windows2000运行的程序

VS2012 x64 跨工具命令提示符

windows 7 + vs2010 sp1编译 x64位版qt4

VS2012下X64平台嵌入汇编程序