使用DAO获取Access数据库的副本ID
Getting the replica ID of Access database using DAO
我最近移植了一个MFC项目从VS6到VS2005。VS6项目链接了ddao35d。它不再与VS2005中使用的"新"MFC兼容。为了解决这个问题,我现在包括afxdao.h,并根据其他帖子的建议将我的数据库类从CdbDatabase
更改为CDaoDatabase
: -
然而,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,它会链接daouvid .lib。"
…
"添加和daouid。莉比就是个圈套。新增:将CdbLastOLEError的声明改为CDaoErrorInfo。CdbLastOLEError仍然存在,但显然不再存在于ddao35.lib中。更改为CDaoErrorInfo并添加daouuid链接。Lib已经更正了链接器错误。"
我找到解决办法了。您可以通过CDaoDatabase类中的m_pDAODatabase成员直接访问DAO。例如:-
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相关文章:
- 用callgrind追踪不必要的副本
- 从函数角度看ID到文件路径的内部与外部映射
- 通过组合不同的类型来创建唯一的id
- 我不断收到 [错误] ID 返回 1 退出状态错误,但看不到问题所在
- FFMPEG配置文件级别id大小无效
- 关于:C++中异常对象的范围:为什么我没有得到副本?
- 方法内部但循环仍得到预期的不合格id错误C++
- 在为LINUX创建共享库时,如何避免STL的私有/弱副本
- 检查注册表项是否链接到(或副本)另一个注册表项
- 如何获取 GLFW 窗口 ID?
- 当简单捕获中的标识符显示为参数的声明符 ID 时,没有编译器诊断
- 显示数组中的学生 ID 和最高分
- 为什么构建目录中新构建的共享库与安装目录中的副本具有不同的依赖项集?
- C++:"("令牌"之前有预期的非限定 id 指向类中成员函数的指针
- 在PostgreSQL中根据它们的ID选择大量行的最快方法是什么?
- C++基于范围的 for 循环和元素副本
- Xcode 9.4.1 中的 Apple Mach-O 链接器 (id) 错误
- 错误:令牌 { '{' 之前应存在非限定 ID
- 创建提升::shared_ptr的深层副本
- 使用DAO获取Access数据库的副本ID