通过ado和通过odbc调用数据库有什么不同?
发布网友
发布时间:2022-04-09 23:31
我来回答
共1个回答
热心网友
时间:2022-04-10 01:00
OLE DB和ODBC是微软开发的数据库连接处理技术. OLE DB是新一代技术,
ODBC属于要微软很快要淘汰(不支持)的产品. 而ADO (ActiveX Data Object)是建立
在OLE DB技术上的数据对象, 它主要特点是:
1. 是连接各种不同数据(关系数据库,大型数据库,文件系统,Email服务器,文本文件...)
的统一界面.用户不用接触低层的OLE DB,而ODBC只能连接关系数据库.
2. ADO属于微软极力推行的COM概念, 即ADO几乎可以在任何微软产品里使用
(VFP,VB, VC, VJ,Office, Visual Interdev, Frontpage). 其使用方式,
命令几乎都是一样. (个人推测,微软正试图将所有编程工具往一起集成)
3. OLE DB远程数据处理功能很强. 用RDO使网站动态数据传送变得非常简单.
在VFP里用ADO有什么优缺点?
在VFP里,几乎所有东西都是Object, 只有3个例外: 报表,数据,菜单.
Object的好处大家都很清楚,可以把属性,方法,事件和一个Object捆在一块.
而ADO就是把数据变成了Object, 在ADO里, 连接,SQL命令,记录集,记录,字段等都是
Object.比如有个记录集(Recordset)RS1, 可以通过它的Count属性得到记录总数,
用MoveFirst, MoveNext等方法移动记录, 用Update方法更新.
当然ADO的这些功能都能用相应的VFP命令来实现,但有一个功能是VFP的练门:
VFP的方法,表单或者进程之间不能传递整块的数据(比如一个临时表或者几个记录),
这在使用COM或者远程数据时就成为很大缺陷了.
而ADO是一个Object,很容易传送,就象传送一个变量一样.
在 2-Tier或者3-Tier系统里,这是至关重要的. 比如在ASP里可以直接调用VFP编的COM
Object来进行数据处理, 然后返回一个记录集Object. ASP里的控件可以直接和该记录
集绑定来显示数据.
OLE DB和ODBC核心引擎都是VFP的Cursor技术,所以,用VFP处理数据是最快和最直接的,
通过ADO来处理,就等于另加了一个层次,既多消耗系统资源,速度也比不上VFP.
而且ADO的记录集是一个Object,你就不能象在VFP里那样直接用Browse等命令来浏览
所有数据.
有人做过测试, 对用ADO的ASP网页和用 Westwind的纯VFP网页(用VFP作为Script语言)
技术进行比较, VFP速度至少是ASP速度的5倍. 当然ASP慢,不全是数据连接慢,
可能是因为集成的东西太多.
说得有点乱, 但结论可以这么下:
如果用VFP编COM组件,或做3 -Tier的中间层, 用ADO比较方便.