什么是在x64中为访问mdb文件创建OdbcConnection的ConnectionString?

时间:2013-10-18 20:48:23

标签: c++ ms-access odbc 64-bit connection-string

扩展这个问题What is the ConnectionString to create a OdbcConnection for an access mdb file,我想知道如何编写连接字符串以连接到64位应用程序的.mdb文件 - 除非这次我试图从c ++ 64bit开始应用而不是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 tehre是安装的“Microsoft Access驱动程序(* .mdb,* .accdb)”,版本为14.00.7010.1000,版本为ACEODBC.DLL。

这里有什么问题?

1 个答案:

答案 0 :(得分:0)

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

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

或者,如果您需要登录:

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

当然需要安装64位access数据库驱动。

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