明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: 河伯

关于AutoCAD和数据库.

  [复制链接]
发表于 2002-6-21 11:21 | 显示全部楼层

数据访问的实质(MSDN)

数据访问的实质
Norvin Leach
MSDN Online 新闻编辑

1997 年 10 月 13 日

上周,我收到一名开发人员的信,他抱怨说有关数据访问的缩写实在太混乱了 — ADO、RDO、DAO。确实很多,但是,这些对于您的工作却是极其重要的,因此有必要澄清它们。

我们的世界到处需要进行数据访问。所有大的数据库经销商 — Microsoft、IBM、Oracle — 都意识到了这一点。世上有太多的信息,也就产生了太多类型的数据库。

IBM 和 Oracle 这样的公司认为,解决方案是将所有内容都放进一个数据库结构。这是个好主意,但我们认为这不可行。相反,我们想要提供一种共同的方式来获取按照不同格式存储的数据。我们想关注于访问而不是关注于数据库。这意味着您可以使用相同的前端来访问关系型数据库、主体数据库、Excel 电子表格和文本文档,所有这些都保存在不同的地方。

我们将通过 ADO 和 OLE DB 做到这一点。您已经听说过这些名字,它们是我们的“通用数据访问”策略的一部分,但是我想有必要解释一下它们是如何从其他数据访问策略进化来的。了解这些是非常重要的,因为在当前最受欢迎的接口 (RDO) 和下一代接口 (ADO) 之间存在着兼容性的鸿沟。如果理解了这段历史,您就会明白应该何时、如何以及是否有必要将代码从 RDO 转化为 ADO。

这里我想要做的是,按顺序回顾过去六年中相关数据访问技术的发展史。(当然,为了清晰,我忽略了一些内容,例如 ESQL C。)

VBSQL
这是 VB 和 SQL Server 之间的一个老接口。它是在基于 C 语言的 DB Library 上建立的,那是我们在 SQL Server 上使用 Sybase 的年代。它能与 SQL Server 的后续版本兼容,但并不支持新的功能。如果您使用的是这种接口,那么现在应该是升级的时候了。这一点也适用于 DB Library 本身。

ODBC
ODBC 可能是最广泛使用的与关系型数据的接口。它赋予您广泛的访问能力,但它是一个低级接口,在访问更复杂的应用程序时您就要付出代价。另外,它也无法很好地获取非关系型数据。我们发现,开发人员通常喜欢通过高级对象接口,如 DAO、ODBCDirect、RDO 或 ADO 等来访问 ODBC。

DAO(数据访问对象)
这是第一个基于对象的接口,用 Visual Basic 语言编写。它封装了 Jet 功能(Jet 是 Access 数据库的引擎),并允许您创建数据绑定(也叫 data-aware)控件。现在,数百万人在使用它。它唯一的不足是缺乏灵活性。它还通过 Jet 访问 SQL 数据,这会增加开支。

ODBCDirect
这是 DAO 的一个变种,它允许您不通过 Jet 数据库引擎访问 ODBC,它实际上就是使用 RDO,但带有 DAO 对象名称。

RDO(远程数据对象)
这是一种紧凑、轻量级的与 ODBC 的接口,是在几年前推出的。它模仿了 DAO 对象模型,并且使开发人员获得 ODBC 低级功能的方式变得更加容易。它在对 SQL Server 的数据访问中非常流行,但其能力仅限于获取 Jet 或 ISAM 数据。另外,它也只能通过现有的 ODBC 驱动程序访问关系型数据库。我们正在超越 RDO,但是如果您目前已经拥有一个运行良好的 RDO 应用程序,那就没有必要去改变它。后面我将谈到这一点。

OLE DB
欢迎使用我们的样板。这是通往“通用数据访问”模型的大门。它是一个低级的基于对象的接口,且不限于关系型数据、ISAM、Jet 或其他任何东西。它可以处理任何类型的信息,也可以是您极少直接面对的东西,除非要开发数据存储或数据库引擎。您将通过 ADO 访问它,并且通过一个 OLE DB 提供者进行数据存储。

ADO(ActiveX 数据对象)
这是与 OLE-DB 的应用程序级接口。它外表与 RDO 和 DAO 相似 (换句话说,它具有相似的对象模型,因此您能够轻易掌握它),但却是这些技术的超集。您可以使用 ADO、通过 OLE DB 服务提供者来处理数据,也可以通过 OLE DB for ODBC 接口来访问现有 ODBC 驱动程序。它是属于未来的。比起我们的任何其他接口,它提供有更广泛的访问方式,并且我们建议您为将来的项目开始使用这种技术。只是有一个问题,它不与 RDO 向后兼容。它似曾相识,因此您可以快速掌握,但是您不能混合代码。

那么我应该怎么办?
将 RDO 代码转换为 ADO 代码不能一蹴而就,但也不象使火箭升天那样难。如果没有必要就不用转换,而且不要害怕学习一种新技术。如果您现在拥有还在运行的 RDO 应用程序,那么就让它运行吧。我们将继续支持 RDO。这对大多数现有程序已经足够了。但是将来会认为 ADO 是访问数据的首选方式。如果您必须将您的代码从 RDO 转换为 ADO,我们将为此提供指导。但是这些还没有准备好 — 因为它们将是明年的技术。在发布时,MSDN Online 会及时通知您。

有关今天所讲述的详细内容,请查阅我们的 Universal Data Access Web 站点(http://www.microsoft.com/data/)。

有关建议请给我来信。

©2000 Microsoft Corporation 版权所有。保留所有权利。使用规定。
发表于 2002-6-21 11:27 | 显示全部楼层

所有例程(VB\VC....)(MSDN)

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/ado270/htm/mdmscadocodeexamples.asp
 楼主| 发表于 2002-6-21 13:28 | 显示全部楼层

对比:需要了解应用于AutoCAD时,哪个比较合适。

发表于 2002-6-21 13:37 | 显示全部楼层

与AutoCAD没有关系

 楼主| 发表于 2002-6-21 18:03 | 显示全部楼层

谢谢提供很多详细的资料,我的本意是想了解你实际的经验。

发表于 2003-10-11 11:38 | 显示全部楼层
看了上面的这些帖子,获益匪浅!
发表于 2003-10-16 23:15 | 显示全部楼层
看了一头雾水,能不能在CAD中讲个最简单的例子,CAD中好象有个与数据库关联的东东?
发表于 2003-12-26 13:03 | 显示全部楼层
请问哪里能买到《AutoCAD 数据库连接技术》一书
发表于 2003-12-28 16:07 | 显示全部楼层
现在ADO最新版本为2.8
发表于 2004-2-18 23:05 | 显示全部楼层
请问goldenshin,若想根据FOXPRO数据库中存储的图形数据来重构该图形,该如何操作呀?谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-3-29 13:11 , Processed in 0.151941 second(s), 16 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表