什么是在 x64 中为访问 mdb 文件创建 OdbcConnection 的连接字符串

What is the ConnectionString to create a OdbcConnection for an access mdb file in x64?

本文关键字:OdbcConnection 文件创建 连接 字符串 mdb 访问 x64 什么      更新时间:2023-10-16

扩展这个问题 为访问 mdb 文件创建 OdbcConnection 的连接字符串是什么,我想知道如何编写连接字符串以从 64 位应用程序连接到 .mdb 文件 - 除了这次我尝试从 c++ 64 位应用程序而不是 C# 执行此操作。不确定这是否有区别,所以我把它放在这里:)

当我编译为 32 位时,我可以使用

"driver={Microsoft Access Driver (*.mdb)};Dbq=mlog.mdb;UID=;PWD="

我不确定这是否是最佳方法,但它有效。

现在我需要用 64 位编译我的应用程序。 上面的连接字符串不再起作用,所以我签出了 http://www.connectionstrings.com/access/并尝试

"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=mlog.mdb;Persist Security Info=False;"

但没有成功。

我使用

ret = SQLDriverConnect(dbc, 0, connectionstring, SQL_NTS, outstr, 1024, &outstrlen, SQL_DRIVER_NOPROMPT);
        if (SQL_SUCCEEDED(ret)) ...

以尝试连接。但它总是失败。当我调用SQLGetDiagRec()时,它返回空字符串。

我还安装了 Access 2010 64 位驱动程序。检查 c:\windows\system32\odbcad32.exe tehre 是 ACEODBC 中安装的"Microsoft Access Driver (*.mdb, *.accdb)",版本 14.00.7010.1000.DLL 。

这是怎么回事?

如果其他人正在寻找解决方案,OdbcConnection 64 位可以使用以下连接字符串连接到 Access 数据库:

Driver={Microsoft Access Driver (*.mdb, *.accdb)};Dbq=X:fullpathdatabase.mdb;

或者,如果您需要登录:

Driver={Microsoft Access Driver (*.mdb, *.accdb)};Dbq=X:fullpathdatabase.accdb;Uid=MyLogin;Pwd=MyPassword;

当然,您需要安装 64 位访问数据库驱动程序。

你可以在这里找到它:https://www.microsoft.com/en-us/download/details.aspx?id=54920