扩展这个问题What is the ConnectionString to create a OdbcConnection for a access mdb file,我想知道如何编写连接字符串以从 64 位应用程序连接到 .mdb 文件 - 除了这次我试图做它来自 c++ 64 位应用程序而不是 C#。不确定这是否有区别,所以我把它放在这里:)
当我为 32 位编译时,我可以连接到我的 mdb 文件
"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 是否安装了“Microsoft Access Driver (*.mdb, *.accdb)”,版本 14.00.7010.1000 在 ACEODBC.DLL 中。
这里有什么问题?