在 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