gpt4 book ai didi

c++ - 从过时的 DAO 类迁移

转载 作者:太空宇宙 更新时间:2023-11-04 11:25:51 25 4
gpt4 key购买 nike

我有一个在 VS 2002/3 中开发的 C++ 系统,我正在升级到当前技术,它广泛使用 CDAO 类(CDAODatabase 等)。这些在 VS 2005 中已弃用,并且在 x64 编译代码中不可用。

我无法弄清楚我应该为这次升级迁移到哪些数据访问类。有什么建议么?是否有一组特定的类,我可以直接插入并以最少的代码更新获得相同的功能?

最佳答案

您的选择是 ODBC、OLE DB 和 ADO它们都提供对多个数据库的访问(使用各自的提供程序),而 DAO 基本上用于 Microsoft Access(尽管我认为支持 ODBC 桥)。

ODBC 是最传统的,但也是 MFC Wizards 中支持较好的一种(尽管也是性能最差的)。您可以使用 ODBC 的原始 C API 或 MFC 包装类,如 CDatabase 等(这些 MFC 类也由连接到 ODBC 的 MFC 应用程序向导使用)。 MFC 类遵循与 DAO(CDaoDatabase 等)类似的对象模型。

OLE DB 具有最好的性能,但级别很低(尽管 MFC 向导也支持它)。您可以从原始 C COM API 或 MFC 应用程序向导生成的智能指针包装器中使用它

最后是 ADO,位于 OLE DB 之上(因此与 OLE DB 兼容的提供程序也可用于 ADO)。性能不如 OLE DB,但更友好。ADO 通常是 ASP(.NET 之前)、VB6 等的首选技术。您可以通过三种方式使用 ADO:

  • 使用原始 C COM API(低级别,不推荐)。

  • 使用 MFC 类向导(或最新版本中的等效项)围绕 COM 接口(interface)生成 MFC 包装器类。

  • 使用 #import 指令生成智能指针包装器(并使用多种易于使用的类型,如 bstr_t、variant_t 等)和 ADO 错误的 C++ 异常包装器。

我更喜欢使用 ADO 的#import 方法,有关示例,请参见

http://msdn.microsoft.com/en-us/library/windows/desktop/ms677563(v=vs.85).aspx

http://msdn.microsoft.com/en-us/library/windows/desktop/ms677493(v=vs.85).aspx

关于c++ - 从过时的 DAO 类迁移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26718560/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com