使用DAO获取Access数据库的副本标识

时间:2011-08-31 16:45:59

标签: c++

我最近将VS6的MFC项目移植到VS2005。 VS6项目链接了ddao35d.lib(DAO 3.5),它不再与VS2005中使用的“新”MFC兼容。为了解决这个问题,我现在包括afxdao.h并根据其他帖子的建议将我的数据库类从CdbDatabase更改为CDaoDatabase: -

http://www.experts-exchange.com/Programming/Languages/CPP/Q_22465486.html

但是,CdbDatabase中有一个名为GetReplicaID()的成员函数已不在CDaoDatabase中。有谁知道如何使用CDaoDatabase类或其他方式获取Access数据库的副本ID?

以下是该帖子的重要内容: -

“从Visual C ++ .NET开始,Visual C ++环境和向导不再支持DAO(尽管包含DAO类,您仍然可以使用它们。)Microsoft建议您为新项目使用OLE DB模板或ODBC。您只应在维护现有应用程序时使用DAO。

DAO MFC库(包括ddao35d.lib)是PlatformSDK的一部分,与新的MFC不兼容。你应该#include,它将链接daouuid.lib。“

...

“添加和daouuid.lib是诀窍。加:将CdbLastOLEError的声明更改为CDaoErrorInfo .CdbLastOLEError仍在,但显然不再在ddao35.lib中。更改为CDaoErrorInfo并链接添加daouuid .lib已更正链接器错误。“

1 个答案:

答案 0 :(得分:0)

我找到了解决方案..您可以直接通过CDaoDatabase类中的m_pDAODatabase成员访问DAO。 EG: -

CDaoDatabase dbDatabase;
COleVariant varReplicaID( "", VT_BSTRT );
HRESULT hr;
hr = dbDatabase.m_pDAODatabase->get_ReplicaID(& V_BSTR(&varReplicaID) );

有关详细信息,请参阅

http://msdn.microsoft.com/en-us/library/1s0dx3s7.aspx