【问题标题】:How can i open a MSAcess Database in win7 64 bit OS using CPP?如何使用 CPP 在 win7 64 位操作系统中打开 MSAcess 数据库?
【发布时间】:2012-07-23 06:56:15
【问题描述】:

我需要做的就是在 64 位操作系统中打开 MSAcess DB。我的代码在 32 位操作系统中工作正常,但是当移植到 64 位时,打开函数会抛出异常“数据库操作失败”。我的代码部分如下

//Code
CDatabase* m_pDatabase;
m_pDatabase = new CDatabase();
string szConnect = Driver={Microsoft Access Driver (*.mdb)};Dbq=E:\Application Files\Database\PLConfig.mdb
m_pDatabase->OpenEx(szConnect.c_str());

【问题讨论】:

    标签: c++ ms-access 64-bit database-connection


    【解决方案1】:

    Jet (.mdb) 驱动程序不适用于 64 位,您需要 2010 版的 ACE 驱动程序和合适的连接字符串 (http://www.connectionstrings.com/access-2007/)

    Driver={Microsoft Access Driver (*.mdb, *.accdb)}
    

    Microsoft Access Database Engine 2010

    【讨论】:

    • 谢谢 Remou。这真的很有帮助。但问题是我找不到确切的解决方案。但是我安装了 Accdb_64Bit,我可以通过创建系统 DSN 连接到访问数据库.但是如果我使用 DSN 较少的连接字符串,呼叫仍然失败。现在我的连接字符串看起来像这样 code "Driver=Microsoft Access Driver (*.mdb, *.accdb)};Dbq=E:\Application Files\Database \MyDatabase.mdb"
    • 我收到的异常是“CDBException * __ptr64 at memory location 0x00129ed8..”
    • 恐怕你已经超出了我的能力范围。现在可能值得发布一个新问题,因为 x64 的错误驱动程序的问题更明显。
    • 如果你完全按照链接网站上所说的去做,它就会起作用。如果您不使用 ACE 驱动程序,那么它将无法工作,至少在 64 位进程中无法使用。
    猜你喜欢
    • 2015-08-13
    • 1970-01-01
    • 1970-01-01
    • 2011-10-01
    • 1970-01-01
    • 2013-08-29
    • 2015-02-11
    • 2011-02-20
    • 1970-01-01
    相关资源
    最近更新 更多