【问题标题】:What is the ConnectionString to create a OdbcConnection for an access mdb file in x64?在 x64 中为访问 mdb 文件创建 OdbcConnection 的 ConnectionString 是什么?
【发布时间】:2013-10-27 20:04:48
【问题描述】:

扩展这个问题 What is the ConnectionString to create a OdbcConnection for an 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 中。

这里有什么问题?

【问题讨论】:

  • 您的机器上是否安装了 64 位版本的 Access Database Engine
  • 我认为这个问题会出现,所以我通过编辑在问题的末尾添加了一个注释。
  • 我没有使用过 Visual C++,但在 C# 中,Sql... 数据库对象是特定于 SQL Server 的,并且不适用于 Access(和其他数据库)的 OLEDB 驱动程序。相反,必须使用 OleDb... 对象。是否存在与您当前尝试使用的 SQLDriverConnect 对象等效的 OleDbDriverConnect
  • 嗯,很有趣。也许你是对的。但我还不知道。我总是对 JET、ODBC、OLDDB、ADODB 感到困惑。有这个页面msdn.microsoft.com/en-us/library/ms692897%28v=vs.85%29.aspx大致总结了它,除了JET。那么我应该使用/尝试 OLEDB 还是 ADODB?
  • 答案here 表明,ADO 比 C/C++ 应用程序中的 OLEDB 更易于使用。

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


【解决方案1】:

如果其他人正在寻找解决方案,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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-10
    • 2023-03-18
    • 1970-01-01
    • 2015-06-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多