visual foxpro是数据库管理系统,是介于数据库和用户的管理系统,集成开发语言,提供数据库操作前端界面的制作,提供c/s模式开发,提供api和activitx函数和控件的接口,是开发小型数据库的前端工具。
数据库管理系统是一个能够提供数据录入、修改、查询的数据操作软件,具有数据定义、数据操作、数据存储与管理、数据维护、通信等功能,且能够允许多用户使用。另外,数据库管理系统的发展与计算机技术发展密切相关。而且近年来,计算机网络逐渐成为人们生活的重要组成部分。
扩展资料:
按功能划分,数据库管理系统大致可分为6个部分:
(1)模式翻译:提供数据定义语言(ddl)。用它书写的数据库模式被翻译为内部表示。数据库的逻辑结构、完整性约束和物理储存结构保存在内部的数据字典中。数据库的各种数据操作(如查找、修改、插入和删除等)和数据库的维护管理都是以数据库模式为依据的。
(2)应用程序的编译:把包含着访问数据库语句的应用程序,编译成在dbms支持下可运行的目标程序。
(3)交互式查询:提供易使用的交互式查询语言,如SQL.DBMS负责执行查询命令,并将查询结果显示在屏幕上。
(4)数据的组织与存取:提供数据在外围储存设备上的物理组织与存取方法。
(5)事务运行管理:提供事务运行管理及运行日志,事务运行的安全性监控和数据完整性检查,事务的并发控制及系统恢复等功能。
(6)数据库的维护:为数据库管理员提供软件支持,包括数据安全控制、完整性保障、数据库备份、数据库重组以及性能监控等维护工具。
以下是我2001年在网上下载的一篇专论,它曾经使我坚定而热烈的走上学习VFP之路,今天在此奉献全文,一是赠给同道者,二是想坚定犹疑者,三是想反击轻蔑(VFP)
者。或许VFP本身的强大就已经证明了它的价值,并不需要我在这里的聒噪!
您真的了解Visual FoxPro吗
作为市场上最灵活和功能最强大的数据库管理系统,Visual FoxPro拥有悠久而辉煌的发展历史。它初创时是Fox Software公司的FoxBASE产品,“Fox”(这是国际编程界对她的称呼)一种可靠、便捷和高效的程序员用的数据库产品而名闻遐迩。 世界上没有一种产品像 Visual FoxPro 那样运行,她是独一无二的!许多人在享受了Visual FoxPro的服务后却说不清她是什么。就让我们沿着她的发展轨迹了解了解她吧!这会使您能对她有更深刻的认识。
FoxPro隶属于一种名为Xbase的DBMS类别。Xbase这个术语很常见,他表示诸如FoxPro、dBASEIII PLUS、dBASEIV、FoxBASE+以及ARAGO的语言。Xbase最初起源于一个大型机使用的DBMS,这个DBMS叫做JPLDIS(喷射推动实验室数据库管理和信息检索系统)。这个DBMS 是由美国人Jeb Long在1972年开发成功的。到目前为止全世界的开发者和程序员已经编写了几千万行的Xbase代码。
追溯到80年代末,FoxBASE是dBase的克隆系统。只要是dBASEIII能做的工作,FoxBASE就能做得更好更快。FoxBASE虽然拥有某些全新的特征,但她并没有真正重大的技术突破,只是为了运行得更快更好,而更重要的是它与dBASEIII兼容。
FoxPro 1.0首先背离了与兼容的原则。她开始在图形用户界面的设计和软件开发方法中采用一些新的思路,从而使她领先于当时年前景已不妙的dBASEIV。从2.0开始,FoxPro才真正形成了她自己的特色。当FoxPro 2.0推出时,它包含了若干项关键技术,给PC数据库开发市场带来了革命性的变化。这些技术是:
1.加入了Rushmore技术,她能从事许多难以想象的复杂工作。突然之间,带有以百万计数的记录的表格在PC数据库系统中不仅成为可能,而且可以非常容易地加以实现,无需转用其他比较昂贵的技术;Rushmore最重要的优点在于它是完全自动化的,不用用户花费精力和时间。因为有了Rushmore技术,再加上Fox天生的快速,即使在今天Visual FoxPro仍然是最快的桌面数据库引擎。
2.加入了Rushmore技术,她能从事许多难以想象的复杂工作。突然之间,带有以百万计数的记录的表格在PC数据库系统中不仅成为可能,而且可以非常容易地加以实现,无需转用其他比较昂贵的技术;Rushmore最重要的优点在于它是完全自动化的,不用用户花费精力和时间。因为有了Rushmore技术,再加上Fox天生的快速,即使在今天Visual FoxPro仍然是最快的桌面数据库引擎。
3.SQL语句是FoxPro 2.0推出的另一项具有革命性意义的关键技术。Fox的开发人员首次用单一语句取代了整个程序过程,并且这种支持是内含于Fox数据引擎之中的。SQL语言曾经并且现在仍然是强大的数据语言。
FoxPro 2.0还推出了某种所见即所得的开发报表和屏幕的工具。FoxPro 2.0确实具备了我们今天的Visual FoxPro拥有的一些出色的功能。GUI设计服务、SQL和极快的数据访问,是她明显的特征。
FoxPro 2.5有for DOS、for Windows版,不过那个Windows版只是具有看上去像“Windows”的DOS应用程序的外观。特别是那个DOS下的版本绝对是经典之作,观察身边是不是还有很多这样的系统在运行着?当时有人这样评价:这个软件已经无法再快了,除非硬件升级……
直到1995年春天Visual FoxPro推出时,才出现了FoxPro的又一次重大改进。这时Microsoft已经收购了Fox Software公司。Visual FoxPro 3.0增加了一些人们企盼已久的特性,使PC数据库开发界大为震惊。我们可以看到:Visual FoxPro与FoxPro是由很大差别的,不要再把Visual FoxPro成为FoxPro了。这些特性是:
1.数据库容器(Database Container),也叫DBC,她增加了开发人员多年盼望的对存储过程的支持、与表格相关联的数据规则和一系列的附加数据功能。
2.远程数据的无缝连接。谈到连接远程数据的处理,大家往往会想到RDO、ADO、BDE等处理数据引擎,那么Visual FoxPro利用什么实现远程数据的无缝连接?Visual FoxPro本身的数据处理引擎,这和其他任何开发工具都是不同的!Visual FoxPro数据处理引擎通过ODBC驱动程序与远程数据库服务器“通话”,远程数据库服务器的ODBC驱动程序能将Visual FoxPro数据转化成可由他们解释的数据;相反,Visual FoxPro的ODBC驱动程序也能将远程数据转化成可由Visual FoxPro数据引擎处理的数据。可见,只要远程数据库有ODBC驱动程序,就可以用Visual FoxPro最为客户端软件。常见的SQL Server、Oracle、Access等数据库都提供ODBC驱动程序。
在Visual FoxPro中实际操作远程数据有两种方法,远程视图和SPT技术。视图(View)是可更新的SQL光标,增加了一整套的数据访问方法,用于数据处理、GUI显示和报表制作。它支持两种类型的视图,即本地视图和远程视图。本地视图是基于Visual FoxPro表格的视图,远程视图是基于任何ODBC数据源的视图。另外为了使Visual FoxPro成为完整的C/S开发环境,除视图之外Visual FoxPro还支持SPT(SQL Pass Through)技术来完成视图无法完成的工作,比如数据库服务器的用户管理、存储过程调用等。View与SPT技术的产生后,Visual FoxPro就成为访问远程数据的主要工具。从总体来看,创建整个企业范围内的应用程序和使用存储在远程数据源中的数据,几乎与使用Visual FoxPro表格本身一样容易,处理在数据存取时增加了一些命令、函数,数据处理与普通的Visual FoxPro编程没有任何区别。再次指出:Remote View与SPT技术是由Visual FoxPro数据处理引擎直接支持的,这与在VB、VC++中的外部数据访问技术不同(他们使用组件,如:DAO、RDO、ADO……),所以用Visual FoxPro访问远程数据的效率很高,并能把远程数据与本地数据完美的融合在一起,最大程度地提高开发效率和程序运行效率。
完全支持面向对象技术(OOP)。充分而健壮的实现了面向对象的处理方式大大改善了软件开发条件。健壮的对象模型和创建你自己的类及子类的所用的功能,形成了一种全新的软件开发手段。
Visual FoxPro 5.0是3.0的升级版本,它是一个32位的系统。具备了使用和创建COM服务器的功能,并开始支持在Internet上发布Visual FoxPro。从这个版本开始,Visual FoxPro进入了Visual studio家族,并且Visual FoxPro将不再升级的谣言也是在这个是其出现。
在Visual FoxPro 6.0出现之前,微软计划推出DNA,就是今天的.NET,并承诺把Visual FoxPro发展成健壮的中间层工具,所以这以后Visual FoxPro的变化初级用户就不太容易感觉了。Visual FoxPro 6.0也没有根本上的变化,不过有些变化还是相当明显的。Access和Assign这两种方法在控制放入你的对象中的数据方面很有创意。运用新的Component Gallery(组件库)和Foundation Classes(基础类),你能很容易地转向创建面向对象的应用程序的工作。对COM支持的更好,在Server Pack 3后我们可以用Visual FoxPro创建多线程的COM组件。
Visual FoxPro的语言是由Xbase、SQL、OOP构成的。我不知道这样分解是否合理,我只是从FoxPro的发展历史得出以上结论的。其实以上三者在Visual FoxPro完美的融合在一起了,已经与Visual FoxPro血脉相连、不可分割,很多语句、函数很难区分它属于哪个门类(也没必要)。再者Xbase这一叫法也不十分妥当,这样容易让人误会,好像Visual FoxPro的语言是没有发展的“死语言”、是十几年前的“老古董”,其实在FoxPro每一次升级中(现在已是Visual FoxPro 7)都会对这部分语言进行修订、增补。我看还是这样:Visual FoxPro语言就叫她:“Visual FoxPro语言”,她既不同于任何以往的Xbase(最多有历史渊源),也不同于其它的编程语言。这就象Delphi那样,是Object Pascal语言,不是以前的Pascal;VB就是VB,不是以前的 Basic。
从Fox进入可视化的时代后,对COM技术的支持一直是Visual FoxPro在过去、现在、将来不断改进的地方。面向对象程序设计(OOP)的最大的好处就在于代码的重复使用。然而,OOP只是一种解决代码重复使用的一种优秀的方案(solution)。单纯利用OOP技术不仅要求所有对象都必须用一种语言完成,并且你还需要得到原程序代码嵌入应用程序(就像我们在Visual FoxPro开发使用Class那样)。如果对象是有你或你的公司完成的这些可能不是什么问题,但如果对象是由其他人或其他公司写的这就是问题了……再者为了节省资源我们常希望把一对象放在远程的计算机上供许多应用程序使用,怎样简单、安全完成这个任务呢?看来,单有OOP是不行的!于是微软提出了Component Object Model(COM)技术,有了它我们就不需要把对象源程序嵌入我们的应用程序中,就可以使用其他语言开发的对象,就可以分布的使用对象了。
ActiveX documents 允许用户在一个应用程序中编辑另一个应用程序的document。我们把Word文档嵌入或链接到Visual FoxPro中,就可以不离开Visual FoxPro编辑Word文档了。
ActiveX controls 为开发人员提供了增加的系统功能的方法,典型的应用就是各类ActiveX控件的使用来加强用户界面。这里要说明的是Visual FoxPro不支持(7.0也不支持)“集装箱式的”ActiveX 控件,比如Cool bar控件。
Automation 允许用户在一个应用程序中操纵另外一个应用程序或组件,典型的应用就是Visual FoxPro 与Office 的OLE-Automation应用。
Remote Automation 或者称 Distributed COM (DCOM)与Automation技术差不多,只是它支持组件的分布,这就是微软的分布式应用战略。
Visual FoxPro 不支持Active controls(ActiveX)的开发,但支持server components的开发,也就是在Automation、Remote Automation中使用的组件都可以用Visual FoxPro来开发。Visual FoxPro的这种能力是从5.0开始具有的,到了6.0的SP 3已经可以开发出多线程的组件了,这些在上文已经有过论述。Visual FoxPro未来的版本一定会对Automation,特别是Remote Automation有更好的支持,无论是开发server components,还是由Visual FoxPro充当客户程序。
综上所述,Visual FoxPro是创建关键任务的、企业范围的、面向对象的单层次、双层次、多层次应用程序的重要开发工具,这些应用程序可以在本地或全球范围内进行配置。
一.Visual FoxPro 已经过时了吗?
恕我直言,这样的问题我真的听腻了。这个问题我听了好几年了。从谣言出现到今天Visual FoxPro的版本已经生了两次变化,就是Visual FoxPro 6.0 与马上就要推出的Visual FoxPro 7.0(去年低本人已经得到了Visual FoxPro 7.0的Beta 1)。我不能保证是否会有Visual FoxPro 9.0(这就像我不能保证微软是否在那时还存在一样),但我可以肯定Visual FoxPro 8.0一定会在一两年后面世。可以这样认为,只要不出意外情况(比如微软倒闭、业界发生了重大的变革等),Fox就会不断地发展!
在国外,一个程序员、一家公司把他们使用的开发工具视作一项投资,作为Visual FoxPro的开发厂商微软公司就必须保护客户的投资权益,这是很基本的商业原则,微软绝对不敢随意淘汰有着50万用户的Fox,除非永远不想赚这50万用户的钱了。据我所知Visual J++已经被淘汰了,可能支持他的用户群过于单薄已是个重要原因吧!
为什么会有Visual FoxPro 要淘汰的传闻呢,我不是很清楚。但这两年微软对Visual FoxPro的不宣传态度却是为这股谣言起到了推波助澜的作用。另外Visual FoxPro 确实是一个容易引起误会的产品,初级用户很容易对她产生“不怎么样的”评判,于是加上那谣言就产生了“Visual FoxPro 就真的要淘汰了”的幻觉了。
二.为什么说Visual FoxPro 是容易引起误会的产品呢?我总结以下几点原因:
产品定位导致Visual FoxPro变化不易为人们感觉。微软要把Visual FoxPro作为三层构架(或是多层构架,叫.Net也可以)的中间层开发工具。
什么是三层构架呢?第一层是用户界面:它包含了用户界面,让使用者输入,输出,查询等工作;第三层是资料层:它就是用来放资料的地方,一般是指后端数据库,主要有包括 Oracle、SQL Server 等,它主要是提供一个很大的地方,来有规则的存放数据;第二层是商务逻辑层(中间层):有人要说了:存取资料,直接从第一层跳到第三层可不可以?当然可以,没有人规定不能走后门,而且从后门直接抓资料,既快又好,那为什么搞出个第二层呢?商务规则是经常变化的,比如上班从8 点改为10 点,那电脑怎那么知道老板因为不景气少让大家上二个小时班呢?它一定无法知道,你必须告诉它,这时问题就来了,如果你有很多部电脑,例如:100 台,你就得一部部换新程序。如果这是一个挂在Internet上的网络程序,难道总让用户download新程序不成?于是就提出了中间层的概念——把处理相同业务程序归拢在一起,一切工作由它完成(由它连接着后台数据库与前端用户界面,执行商务逻辑),这样老板再有什么新花样就不必担心了——改一个程序就行了。
中间层是没有图形界面设计的代码编写,并且是OOP方式的代码编写,不仅要熟悉后台数据库的特性,还要考虑前台界面工具的特性,最重要的是商务逻辑的构架,同时还要求懂得IIS、MTS(COM+)、NT的安全设置等复杂枯燥的东西。如果您仔细研究一下Visual FoxPro在近年来的重要改进,微软确实向着这个目标花了很大的力气,成效是令人满意的。但由于这种变化属于深层次的升级,不易被人感觉,往往就导致人们误以为:Visual FoxPro不再发展了。
不要以为Visual FoxPro是“低端产品",无论从数据库(DBF Base)品质还是开发环境评价Visual FoxPro,他都是一个“高端工具”。
许多人认为Visual FoxPro只能用来开发单用户系统或是文件服务器构架的小型网络系统——这是谬误——这种无知的言论在许多讲C/S、三层构架的书中都有(特别是一些VB、PB、Delphi的数据库编程书)。我可以很负责任的告诉大家完全可以用Visual FoxPro开发C/S结构的系统。这里说的C/S构架绝对是正宗的,不是用什么F/S构架在糊弄大家。在C/S构架中我们常常选择Visual FoxPro作为客户端开发工具,以Oracle、SQL Server等网络数据库压在后台,使用Visual FoxPro内置的Remote View和SPT技术,这样就可以完美地解决问题。这里不能详细展开,只特别介绍Visual FoxPro的本地引擎在开发中的作用。Visual FoxPro的本地引擎特别强大(上文我们说过处理百万条记录不费吹灰之力),我们在设计系统时可以十分简单的将远程数据与本地数据结合,很简单、很有效地控制网络数据流量、提高系统工作效率(我看过不少VB、Delphi、PB的书,他们很少在怎样控制网络数据流量、提高系统工作效率论述,不知是不屑一顾,还是其他什么原因)。
我认为Visual FoxPro的本地引擎在C/S构架下起码有三项伟大的用途。其一:非经常变动数据的本地存。我国的邮政编码与地区的关系是相对稳定的数据,而且数据量也不是太小,我想总有上千个记录(我没仔细考察过具体情况),我们把这些信息存储在客户端的计算机中,就可以在使用邮政编码及其相关信息时从本地得到数据,这样能使高系统效率同时节省网络资源(这是C/S开发的重要原则),只在邮政编码发生变化时在服务器上统一更新,下载更新客户机上的数据。如果用别的软件实现同样的功能,绝对比Visual FoxPro麻烦而且效果绝对不及Visual FoxPro,这因为Visual FoxPro的数据引擎直接支持远程数据读取,能很好的融合本地数据与远程数据;其二:离线数据包。单位里总有人出差,在千万里路之外能不能拿着笔记本为客户发订单、与客户签合同,就像在自己的办公室一样?当他回到公司时只要把笔记本连到服务器中,发送更新就行了。Visual FoxPro的离线视图是经济且高效安全的方案(当然您可以使用远程拨入或建一个Web网站,这些Visual FoxPro可能干)。其实离线数据包还有一个重要的功能:当下载的数据是大量的(除非万不得已请不要这样设计系统),这种情况下使用离线视图可以数据集自动转化为物理表,充分利用Visual FoxPro的高速与灵活,完成后连线更新后端数据源——一切都很简单。我认为:离线视图绝对是Visual FoxPro在C/S系统中的一个卖点,虽然ADO也支持类似的东西,但肯定不及Visual FoxPro有效率;其三:数据驱动。您是否知道,Visual FoxPro中绝大多数文件格式实际上都是DBF文件,如DBC、SCX、FRX等,他们都可以由Visual FoxPro的本地引擎驱动完成复杂的任务。在设计C/S结构时如果要存储用户设置、自定义文件格式,用Visual FoxPro的本地引擎帮忙绝对比其他软件简单,因为你用的是换汤不换药的方法,但它简单、有效率。
在三层构架中,Visual FoxPro可以从当任意一层的任务,但本人以为大中型系统的数据库部分应以网络数据库为主。客户端界面用Visual FoxPro也是可以的,但一般限于企业内部,在Internet上我们通常使用IE作为客户界面。在三层构架中Visual FoxPro最胜任中间层的开发,它简单(开发难度与普通的Visual FoxPro项目相差不大)、快速的字符串生成、支持COM技术、它支持(MTS)COM+技术、它支持XML(Visual FoxPro 7.0将提供4个或更多与XML有关的函数)、它具有强大本地数据引擎、灵活的数据处理方式、它支持多线程的服务组件的开发。
可能有人要问:用ASP+脚本语言一样可以开发Web系统,何必加个中间层。的确,目前在市面上与多讨论Web的书都直接使用脚本语言来开发整个系统,这是十分不正确的做法,甚至有写书还说硬件越来越快,因此使用脚本语言来开发整个系统并没有什么关系。会说出这样话的作者通常都是没有实际开发Web应用经验的人。脚本语言,如VBScript是一种解释性语言,运行效率很低,他们只合适作为胶水程序。开发Web系统正统的做法是:把应用逻辑编写成COM、DCOM对象,或是MTS/COM+对象然后用少量的脚本语言来驱动/使用这些对象。这样系统开发时工作量会大一些,但它符合开发任何数据库应用程序的最基本的原则:分离应用逻辑与用户界面。这样系统就会变的容易维护了——你可以经常变换那些胶水程序来改变Web页面,应用逻辑变换时你又可以改变某一个逻辑对象,而不用为杂乱且关系复杂的代码发愁。再者,由于Visual FoxPro是高效、灵活的数据处理语言,任何商业逻辑都可以用它来代码化,并且您可以获得几十倍甚至上百倍于ASP+脚本语言的运行效率,以及更为强健的执行效果。
解决了上面一个问题,又有人会提出:我可以用VB、VC++建立对象组件时,为何我要用Visual FoxPro 来建立相同的组件? 微软对这一问题有专门的评论,大意为:快、重复使用性、跨语言重复使用性。“快”是指用Visual FoxPro开发的组件撷取、处理资料都极为迅速,并且Visual FoxPro能够非常迅速的建立字符串。到底有多快,我想数据处理、存取的速度大家平时都领教过了,字符串生成速度我这里有个数据不妨一看,这是台湾的一位高手做的试验——将1M的数据写入文本中,结果VC++ 6.0程序用了3.5秒、VB 6.0程序用了11秒、Java 1.1.5用了24秒、Visual FoxPro 6.0用了7秒;“重复使用性”是指Visual FoxPro具备OOP的功能;“跨语言重复使用性”是指Visual FoxPro编写的对象编译以后成为COM、COM+对象组件,这样就可以在其他语言中使用它了。
三.Visual FoxPro 的语言看上去蛮难的
人们在赞扬 Visual FoxPro 始终是褒扬他的易学易用,我不同意这种观点(我不知道他们站在什么立场上说话)。我看问题的角度是“成为一名还过得去的 Visual FoxPro 程序员”,我的结论是Visual FoxPro 作为一个开发工具并不是好学的。这不是说Visual FoxPro的语法、概念像C那么繁复,而是指:即使是简单的应用,也要掌握很多Visual FoxPro的概念、语法、函数,可能还要较深入了解OOP——往往让人摸不到深浅。比如,拿数据库系统最重要的功能——查询来讲,Visual FoxPro就“花样繁多”。我曾统计过,不算“List、Browse"等交互式命令,Visual FoxPro起码支持4条命令(Find,Seek,Locate,Select-SQL)、3个函数(Lookup(),Seek(),Indexseek()),(当然其中有的已经淘汰)这些命令的关键字、函数的参数众多,有的要求索引, 有的可以用索引但要求优化索引……而这在VB、Delphi中绝对就只是两三个方法的事情。从上面的例子中如果您只看到了Visual FoxPro的繁杂,那么您就完全错了:在VB、Delphi实现查询功能的原理与Visual FoxPro应是一样的,但他们封装了许多环节,而Visual FoxPro就把许多东西更低阶(当然不如VC++那么低层次,但是已经比使用对象的语言难多了)的展示给我们,所以Visual FoxPro的开发者往往比使用其他的开发工具开发者更会思考、更懂得的数据库开发的真谛,因为工具逼迫他们朝这个方向努力……
用Visual FoxPro有助于提高程序员对数据库概念的理解。许多在Visual FoxPro程序员中不是问题的问题往往成为那些使用对象处理数据的程序员的噩梦。比如在Visual FoxPro中数据缓冲、事务处理都是重要的概念(事实上要干活就必须了解这些东西),在其他开发环境中一味强调方便快速往往忽视程序员的基本概念培养,编出的东西要么效率不高、要么老出问题。读书人都懂得:基本概念、基本理论是命根子,这就是Visual FoxPro带给我们的好处。
有趣的是Visual FoxPro繁、难也就到这个程度了 ,他的学习难度曲线是所有语言中最平稳的——不像在有些语言中,基础开发十分容易,一旦深入却难度很高。在Visual FoxPro中初级应用、中级应用、高级应用的难度差异很小——就是那些似曾相识的语句、易于理解的函数。Visual FoxPro的这种高级应用不太难,初级应用不十分容易的特性,对初入门者来讲是无法体会其中的妙处的,这就造成了Visual FoxPro的不太友好形象;
同时,Visual FoxPro的难度却带来了很多的好处(前文我已谈了很多),Visual FoxPro比其他语言在数据处理上更快速、更灵活,数据处理方式更多、更完备。设想一下用Visual FoxPro开发数据对象时,我们可以使用丰富多彩的语句、函数,实现十分复杂、变化多端的功能,用其他语言开发数据对象,它们的功能只能是建立在已有的数据对象的功能之上(这叫继承),变化就少了,功能就弱了。如果要实现Visual FoxPro的Xbase+SQL 那样灵活、强大的功能恐怕要使用底层的API了——这太可怕了!
OOP不仅是指“面向对象”的开发环境,更是一种开发思想、开发技术,Visual FoxPro 在后者上做得更好。
我们讲过Visual FoxPro完全支持OOP的开发,但有趣的是在数据处理方面,微软实际上没有提供什么现成的对象(FFC是Visual FoxPro 6.0才有的,且封装性、适应性都不尽如人意),这一点我不知是Visual FoxPro的福气还是祸害。说“福气”这将逼迫程序员掌握这门并不太简单的技术(可能用“思想方法”更恰当),而不是简单地使用对象。OOP对于中间层的开发来讲是很重要的,因为COM组件必须是建立在OOP思想上的,要开发这种组件就必须掌握OOP技术;讲“祸害”这使Visual FoxPro变得不易于学习和使用了(就我个人而言,真正体会到“用Visual FoxPro应会编制数据处理对象”这一问题也是在使用了Visual FoxPro好长时间之后的事情了)。事实上现在很多诽谤攻击Visual FoxPro的人都没有深刻的认识这一问题——他们只感到Visual FoxPro用起来不及Delphi、PB、VB容易,但他们从不想该怎样开发数据处理对象,到编写COM组件时就要他们的命了。那些“精英们”大多不懂OOP,他们只懂“点”操作符号——仿佛对象的使用就是OOP,他们有什么资格来批评我们呢?
四.Visual FoxPro的界面能力真的很差吗?
我认为最为数据库系统的开发工具微软为我们提供的那些内置控件加上十几个附送的ActiveX控件已经够用了。
我们讨论Visual FoxPro控件应从两方面入手,第一就是界面美观问题,再就是数据处理、分析是否方便。很多人很在意的前一个问题,我倒是不以为然——控件不多特别是美化界面的控件不多并不代表Visual FoxPro就开发不出赏心悦目的软件,我的感受是软件界面的专业化程度、高级别的审美、整体的效果要比个别的界面特效重要千万倍,实际效果可要好上千万倍。看看国外用Visual FoxPro编制的程序您就会明白这个道理了;我对Visual FoxPro的不满在于数据处理、分析控件不全,特别是缺少了一批数据分析控件。比如没有可以与数据捆绑的图表控件、没有可以列示捆绑交叉表的表格控件、没有可以捆绑数据的数据透视表格控件……在这个问题上Visual FoxPro确实应该向Delphi、PB等软件学习,这是我们对未来的Visual FoxPro的期望!
五.Visual FoxPro与OLE DB、ADO
ADO是Windows环境下主流的数据存取的解决方案,那些以对象操作数据的语言基本上都使用ADO实现数据存取,如:VC++、VB、Delphi。在Visual FoxPro的开发环境中好像看不到ADO的影子,是不是Visual FoxPro不支持ADO呢?ADO其实是一组COM对象,Visual FoxPro支持COM,当然支持ADO。
我认为:Visual FoxPro对ADO的支持只是停留在较低的水平。这并不是说Visual FoxPro限制了什么ADO的功能(所有功能都能用),而是指:用起来不方便,不像在VB、Delphi中方便。这种不方便主要体现在ADO的Recordset无法与Visual FoxPro的内置控件捆绑。其原因是:Visual FoxPro 不认识ADO的Recordset,只能将记录逐条
visual foxpro是数据库管理系统,是介于数据库和用户的管理系统,集成开发语言,提供数据库操作前端界面的制作,提供c/s模式开发,提供api和activitx函数和控件的接口,是开发小型数据库的前端工具.
非常适合家庭,小型企业,事业单位的数据库开发,开发效率高,界面友好.不过数据库安全方面没有sql和oracl等大型数据库好.
Visual FoxPro 6.0 关系数据库管理系统是新一代数据库管理系统的杰出代表,以它强大的性能、完整而又丰富的工具、超高速的速度、极其友好的界面,以及完备的兼容性等特点,吸引众多的国内外用户,倍受广大用户的欢迎
Visual FoxPro 6.0 及它的中文版,是可运行于Windows 95和Windows NT平台的数据库开发系统,它不仅可以简化数据库管理,而且能使应用程序的开发流程更为合理。
Visual FoxPro 6.0 使组织数据、定义数据库规则和建立应用程序等工作变得简单易行。用户利用可视化的设计工具和向导,可以快速创建表单,查询和打印报表。