标题:[转贴]认识VF--Visual FoxPro 漫谈_6
只看楼主
难得糊涂2
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2007-10-28
 问题点数:0 回复次数:1 
[转贴]认识VF--Visual FoxPro 漫谈_6

Visual FoxPro的数据引擎与ADO相比有什么优势呢?

Visual FoxPro数据引擎系统资源耗用小,ADO毕竟是COM组件要花用更多的资源。

作为系统共用组件,使用ADO可能会在不同应用系统中产生ADO的版本问题,这就像我们常遇见的ActiveX的控件版本问题。

ADO只是数据存取组件,它没有数据处理功能,要处理数据必须使用客户应用程序,如VBDelphiVisual FoxPro数据引擎同时支持数据存取、数据处理,我已多次强调Visual FoxPro在这两方面的伟大功能;

ADO没有本地数据库作为强大的支持,有需要将远端数据暂时存放在物理文件中ADO绝对不及Visual FoxProVisual FoxPro的数据库是桌面数据库中最好的,远端数据暂存其中不仅方便,而且伸缩性强。

使 ADO从数据源获得数据以后,再要对数据集合进行分组、查询、汇总是非常麻烦的事情,但是Visual FoxPro支持对Cursor的数据处理,我们可以使用绝大多数XBase语言(除了ZAPPack之类的表维护语言之外),还可以对Cursor SQL语句——这种强大的威力,绝非ADO所能比拟。

开发单机程序时,绝对不要使用ADO,这样做既没开发效率也没运行效率; 开发C/S系统时我们应选用Visual FoxProSPTRemote View,它们完全可以很完美的解决问题(已经有很多很多成功经验),不需要舍近求远地使用ADO;在中间层开发时,可以考虑使用ADO,我们为在此种情 况下使用ADO的开发效率是蛮高的,因为这时所有的代码都要我们用一句、一句的写出来(在其他开发环境也一样),Visual FoxPro的语法简单再加上Visual FoxPro 7的极为强大Intellisense功能(真的很快并且可以由用户自定义),也许我们还会占些便宜的。

虽然ADOVisual FoxPro是完全无关的系统,但他们却有共同的母亲——FoxPro 开发小组,原来ADO的光标集(Cursor Engine)是他们开发的。如果你同时了解ADOVisual FoxPro,你会发现ADO的很多思路与Visual FoxPro一模一样……我总是拿这个典故说服那些不相信Visual FoxPro的人:最流行的ADO的光标集是FoxPro 开发小组写的,有什么理由怀疑Visual FoxPro的数据引擎——它是世界上最棒的!

Visual FoxPro是一种历史悠久的产品,很多用户是从FoxBASEFoxProVisual FoxPro,这样一步一步过来的。历史的积淀多了,历史的包袱也重了——许多程序员往往抓住老产品而忘了深入钻研新产品的新特性,这是一种悲哀。

我遇到许多所谓会使用Visual FoxPro的人,还口口声声叫“Query Design”为“RQBE”,朋友那可是DOS时代的概念了。

多人不仔细钻研Visual FoxPro,只是从其他工具中看到某项功能,凭空想象就说:Visual FoxPro不支持的。Delphi中特别指出它有异构数据关联能力,比如:父表是SQL Server数据,子表是Access数据,要求建立关联,实现“一多关系”。在Delphi要求使用特别的SQL语法来实现该功能。Visual FoxPro的文档里好像没特别说明这项功能,是不是没有呢?如果你深刻理解Visual FoxPro的远程视图及Cursor的用法,答案很容易得到。事实上,用Visual FoxPro能更直接、简单实现的实现:建两条“连接”、两个“远程视图”,对子表加索引,Set relation toset skip to……

过来Visual FoxPro能实现的功能,DelphiBDEDelphi的本地引擎)却不能:Visual FoxPro的远程视图能够将多个表关联后的结果集设定为“可更新”,并在数据变动后自动产生Update子句分别更新后台数据。例如:对SQL ServerPubs数据库建立连接,新建远程视图为:

CREATE SQL VIEW TEST VIEW REMOTE CONNECTION CONNECTION1 AS SELECT Publishers.pub_id, Publishers.pub_name, Titles.title_id, Titles.title, Titles.price, Authors.au_id, Authors.au_lname, Authors.au_fname, Authors.phone, Authors.address FROM dbo.publishers Publishers, dbo.titles Titles, dbo.titleauthor Titleauthor, dbo.authors Authors WHERE Titles.pub_id = Publishers.pub_id AND Titleauthor.title_id = Titles.title_id AND Authors.au_id = Titleauthor.au_id ORDER BY Publishers.pub_id

这是四个 表间的关系,算是比较复杂的SQL语句。别担心,这一切在Visual FoxPro只不过是用鼠标在“视图设计器”点击几次就行了。在您对视图进行“添加、删除、修改”并发送更新时, Visual FoxPro会进行分析地智能,产生Update字句分别将变化更新到后端若干个表中。而DelphiBDE只能对Xbase数据源有此的作用,对其他 的数据源都无此功能。Visual FoxPro可以支持所有的ODBC数据源(只要数据源本身支持),如:OracleSQL ServerAccess……当然在Delphi 5.X中可以通过ADO弥补此缺陷,但Visual FoxPro同样支持ADOVisual FoxPro的程序员要有这样的信心:Visual FoxPro为我们提供了最好的本地引擎!

古人云:欲善其事、必先利其器。所以我们不要指责工具怎么、怎么,多看看自己用好了没有!
搜索更多相关主题的帖子: FoxPro Roman Times 
2007-10-28 21:29
参股银行
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2007-10-28
得分:0 
谢谢,已经收集
2007-10-28 22:21



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-181509-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.776430 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved