0

我尝试.mdb使用打开文件CDaoDatabase,但在Open()捕获错误:Unrecognised database format。我首先在 MSAcces2007 中创建了数据库并将文件保存为.mdb,然后我安装了 MSAcces2003 并再次创建了文件,但出现了同样的错误。有谁知道发生了什么?

CString pathDB = "SMACDB\\Transports.mdb";
CDaoDatabase dbTransp;

try
{
    dbTransp.Open(pathDB);

    CDaoRecordset rs(&dbTransp);
    COleVariant var1;
    rs.Open(dbOpenSnapshot, "SELECT * FROM Transporturi");
    while (!rs.IsEOF())
    {
        var1 = rs.GetFieldValue(1);
        CString val = (LPCTSTR)var1.bstrVal;
        g_carRestrict.pCarNmb.AddTail(val);
        var1 = rs.GetFieldValue(2);
        g_carRestrict.pAllowed.AddTail(var1.lVal);

        rs.MoveNext();
    }

    rs.Close();
    dbTransp.Close();
}
catch (CDaoException *pEx)
{
    pEx->Delete();
}
4

1 回答 1

2

Visual C++ 6 默认使用 DAO 3.5,它不支持 Access 2000 或更高版本的格式。要让 MFC 使用 DAO 3.6,请将运行时版本号更改为 6.01。

推荐阅读:

当您打开使用 Access 2000 创建的数据库时,您会收到“无法识别的数据库格式”错误消息

于 2013-05-22T20:36:29.887 回答