关于Delphi5的ADO(50分)

  • 主题发起人 主题发起人 hylwr
  • 开始时间 开始时间
ADO 与 BDE 或者 ODBC 不是相同的东西。其区别来自于设计思想和目的。
诸位应该记得 ADO 的连接首先指向的是一个 Provider 而不是任何已知
的数据库,其关键在于 ADO 提供的是一个数据提供者 (Data Provider)
而不是数据源 (Data Source) 这么简单。其优势在于通过一个数据提供
者的概念我们可以将任何现实世界中的数据抽象成为一个数据逻辑提供给
业务对象使用。对业务逻辑而言,它仅仅和数据逻辑打交道,不必理会该
数据的物理形态。这将业务处理与数据真正的隔绝开。如果你对这个概念
不能充分理会的话,那么你首先应该仔细阅读M$关于多层技术方面的文档。

理论联系现实,目前大家所做的项目和产品,仅仅指企业应用方面,多少
都应该涉及到互联网方面。互联网对我们而言首当其冲的是数据形式的复
杂性。

在过去二十年中,关系性数据库一统天下,谈数据仅仅涉及到二维关系为
止。但是在今天现实世界的一切存在均被企图抽象成为某种数据存在,数
据的形式因而变得纷繁复杂,多维数据库、对象数据库、文档型数据库是
大家已经熟知的,前一段时间还有人声称要重新开发二十年前已经死掉的
树型数据库。除此以外涉及面最大应该是流式数据,数据流的背后是什么
不一定,但从你角度来看仅仅能够把他称作一个动态的流,流的格式、内
容获取的手段全部时未知的,同时也可能是多变的。使用的数据提供者的
优点就在于所有不同的数据形式可以被同一为相同的数据逻辑,想象一下
你的业务对象仅仅和 ADO 打交道,而不必理会相关的数据集的物理形式,
相对于不得不在同一个业务对象中罗列一大堆数据连接方式,而这些连接
方式可能三天两头发生变化,头一天使用的是一堆字符串,第二天变成了
浮点数,那一个对系统的稳定性、易维护性、可扩展性更容易造成伤害?
至于说对现实世界的表现力而言两者的差距几乎无话可说。

从技术的角度来说,ADO 与 BDE 和 ODBC 这些传统的数据连接方式相比
仅仅是做出了一个小小的技术改进,单从概念上说,我们在 Windows 平
台上拥有了一个真正开放的和更具包容性数据获取手段,与以往不同的是
我们不必因为数据的任何变化导致整个系统的重新编写,数据形式第一次
真正的与业务逻辑相互隔离了。

下面是一个问题:

TWebConnection 大家应该使用过了,我想了解大家的看法。从 TWebConnection
的源文件来看,TWebConnection 实质是使用一个 WinCGI 作为代理与WEB
服务器的业务对象建立了一个持久的连接。可是持久的连接与HTTP的设计
目的是相违背的,HTTP本来是为了在无持久连接的情况下交换数据。大家
认为以这种方式搭建的框架,WEB 端的业务对象的生存期是针对客户端每
一个请求还是针对客户端建立每一个连接如同WEBConnection现在所做的更
好呢?

该问题涉及到 Extranet 和防火墙,因此仅仅能够使用单纯的HTTP方式,同
时涉及到复杂数据对持久连接的可靠性严重依赖。
 
果然高手如云
 
;用了ado就可以不用bde,千真万确. 但不知用ado比用bde有多少优点?
不想用bde 的主要原因就是嫌太麻烦,每安装一台客户端除了拷贝应用程序外,
还要安装和配置bde.然而使用了ado后同样要安装额外的部件.并没感到方便多少.

8 8
?
^^^
 
问题变得深入了....
 
我刚试用了ADO,用adoquery做一个查询,我发现adoquery没有updateobject
属性。那么我如何修改返回记录集呢?
 
请教:
1. Paradox库能直接使用ADO吗?
2. 分发时, 需要如同BDE一样绑定一大批附加文件吗?
 
Schiesser:
1.paradox可以用,只要你能通过ODBC连接paradox,就可以用ADO
通过M$ OLE DB Provider for ODBC Drivers来连接他;
2.恐怕是的,ADO的尾巴也不小.
不过可能现在很多机器上都有ADO,但谁敢保证呢? 老老实实装吧!
 
1.PARADOX高版本的ODBC驱动很难找
 
大家有空的话,不妨到 WWW.COMPUTERWORLD.COM.CN 站点上
里头有深圳 王发军大虾的作品. 有一篇讲的是 DELPHI 下的ADO.
及程序实现.
 
to guo_qpeter
没找到?
 
dongwu的访问方法,如果我的Access设了密码,改怎么办呢???
 
建议如果业务有扩展的可能性,指数据库的扩展,特别是要使用
多种数据库,应该使用ADO。DBE和ADO虽然都能使你代码具有高
可移植性,但DBE显然太慢也很容易出错,用odbc也是一个办法
但中间多了一个环节效率下降10%。只有ADO比较直接,而且通用
你可以基本不修改代码而换异种数据库。
但如果你的程序相应的数据库是固定的,还是用专门的数据控
件来处理比如dbf可以用halcyon ,access 可以用DIAMOND access
interbase 可以用interBase控件,ms sql 也有专门的控件
他们都直接控制数据库可以发挥数据库最大的性能,
比如用ms sql的控件你甚至可以做一个EeterPrice Manage来。
但用ado,odbc,bde就都不行。

一个专业,一个广泛而兼容。(不可兼得,ado是两者都照顾的最好的)
 
多人接受答案了。
 
后退
顶部