Visual FoxPro仍将是统计数据处理的重要工具
统计信息化建设在近几年的发展速度可以用“飞跃”来形容,网络化数据处理、数据分析软件、办公自动化系统等信息工程,或是进入到开发阶段,或是已经得以实现,从Ms-Dos到网络环境,似乎是一夜之间从原始社会进步到现代社会。
这种发展速度无疑是可喜的,但也要清醒地认识到,开发完成并不意味着应用和普及的实现。现在的统计数据处理软件呈现出一种良莠不齐的状态,包括Ms-Dos环境下的Foxpro、Sarp、Haps,Windows环境下的Visual FoxPro、Sarp 2000、,网络环境下的Sql
Server数据库。这些数据处理软件的存在,造成了很多麻烦。从硬件设备来讲,计算机既要支持Ms-Dos,又要支持Sql Server,从最高端到最低端都要支持,必然带来了系统的不稳定性。从程序维护人员来讲,老程序员学习新知识应该说是理所当然的,但新参加工作的程序员们反回来还要学习老系统,给人一种返古的感觉。而且多种应用系统的存在,迫使程序员们要学习多种系统软件,从时间、精力上考虑,种类多就不可能达到精,因此在具体应用中也出现了应付某项工作的情况。
作为从事多年统计专业数据处理程序开发工作的区县程序员来讲,我们认为信息化建设的根本目标在于,利用先进的信息化技术,提高工作效率,确保数据质量。数据处理是统计工作的基础,尽快统一和规范数据处理软件的开发系统,则是打好统计工作基础的保障。我们认为,Visual FoxPro是统计数据处理的重要工具,我们不仅使用它开发了许多普通报表处理程序,更是利用它开发了网络数据处理系统。
一、用Visual FoxPro开发C/S结构的应用程序实例
下面以“基本单位名录库新行业分类”的数据处理为实例来介绍一下用Visual FoxPro开发C/S结构的网络版应用程序。先介绍一下开发此程序的背景,我局制定的“新行业分类”数据处理工作的方案是:搭建一个局域网络,从业务科室抽调10人,每人一台计算机进行集中录入。需要录入的单位数量约为17000个。由于时间紧,任务重,不采取新方法是很难完成此项工作的。所以我们计算机中心决定开发一套C/S构架数据处理程序,我们花了近两个星期的时间完成了从程序的编写到测试工作。
1、什么是C/S构架 ?
凡是提供服务的一方我们称为服务器(Server),而接受服务的另一方我们称作客户机(Client),即C/S构架。打个比方:单机数据库系统(比如VFP),相当于前店后库,店里需要什么东西,得自己去库房找,库房管理也是由你自己进行。而C/S系统下,店和库是相对独立的,有一个专门的库房管理(数据SERVER),店里需要什么,按照手续把单子给库房管理人员,由他们去操作。
2、为什么要用C/S构架 ?
我们知道如果在单机下工作,最有可能出现的错误是录入时重复记录,或者漏录记录,造成数据混乱,再有录入完成后还要把每台机器的数据进行合并,合并时要进行相互间的重码检查,工作量之大可想而知。而C/S构架程序正是解决了以上的种种弊端:通过网络,所有的数据都从一台服务器中存取,使之“数出一门”,既不会造成数据混乱,也不用进行数据合并,减轻了负担,提高了工作效率和工作质量。
3、服务器端采用SQL Server作为后台网络数据库
与Oracle、Sybase一样,SQL
Server是功能强大的多线程大型数据库系统。我们采用SQL Server作为后台数据库,在SQL Server数据库中我们建立了基本单位名录库的甲表、乙表,审核公式表以及一些供客户端调用的存储过程等。
4、客户端采用Visual FoxPro的SPT技术开发的“基本单位名录库新行业分类数据处理系统”
SPT是SQL Pass
Through的简写,它与远程视图、ADO一起共同组成Visual FoxPro远程数据访问体系,利用它们你就可以开发完整的C/S构架的系统了。远程视图与ADO都在VFP和SQL
SERVER中间加了一个层次,而这层次就相当于一个黑箱,你不清楚它们到底怎么操作数据的,只需按照它们的规则进行设置,使用相应的命令就可以。三种方式各有优缺点,用SPT虽然编写程序比较麻烦,但可以清楚地知道自己的程序每一步都在干什么,应用起来更得心应手。
SPT技术是通过VFP的函数SQLCONNECT()来和SQL
SERVER建立连接,然后用SQLEXEC()函数把要执行的SQL命令 送到SQL SERVER上去执行,所有对数据的操作都是通过这些SQL命令来进行的。
由于新系统的开发,减少了很多以往此类工作中的问题,最终我们比预期提前3天完成了录入工作。
实践证明:我们采用Visual FoxPro开发C/S结构的应用程序,也能够在多用户情况下把工作任务安全可靠地完成。
二、Visual FoxPro 与其它开发工具的比较
到目前为止,在Microsoft公司的所有开发工具中,Visual
FoxPro是开发数据库应用程序的最佳产品。Visual FoxPro不是FoxPro,两者有着很大区别,好比Delphi不是以前的Pascal,Visual
Basic不是以前的 Basic一样。从一开始,Visual FoxPro 就是为处理数据而设计的,它运行速度快、功能强大,而且非常灵活。
有很多人喜欢拿Access与Visual
FoxPro 比较,且让我们看看微软的评论吧!微软原话如下:“Microsoft Access 是 Office 中的数据库,也是微软所销售的软件中,使用最广且最容易学习的数据库工具。如果你是数据库的新手,如果你要使用Microsoft
Office 来建立应用程序,或者你想要一个相当便利的交互式产品,那么就选择Access。Visual FoxPro 是用来建立关系型数据库应用程序的一种功能强大的RAD工具。如果你是一位以建立关系型数据库应用程序维生的数据库开发人员,而且你希望速度与功能都达到极限,那么请选择Visual
FoxPro。”(这段话在今年Visual FoxPro 退出Visual Studio后,微软又重复了一次,强调Visual FoxPro是专业开发人员的开发工具,而不是Access
那样的普通用户的办公平台。)
Access的MDB数据库适用于20万条/表的数据量的应用(它比Visual
FoxPro数据库的唯一长处是:所有的数据库组件都在同一个MDB文件里,而Fox的数据库可能有多个文件组成,显得凌乱),数据量再增加的话,不是说Access不能处理了,而是效率不行了——查询、索引都很慢。Visual
FoxPro能处理百万计甚至上千万计的数据量。在过去的20多年里,特别是大型网络数据库没有平民化的年代里,业界就是依靠DBF数据表来管理数据的,毫不夸张Visual
FoxPro是能够安全、高效处理大数据量的专业工具。
如果有人拿Visual FoxPro与VB、Delphi甚至是VC++做比较,我们可以清楚地告诉你,后面三者是编程语言,而Visual
FoxPro是数据库系统的开发工具,天生分工就不同。
Visual FoxPro作为数据库开发工具,它为我们提供了十分强健、高效的数据引擎,它容量大、速度快、灵活、健壮,因而用Visual
FoxPro开发单用户数据库绝对比其他所有软件来的高效——Visual FoxPro处理百万条记录也不觉吃力。所以Visual FoxPro的开发人员无论在什么时候都要注意发挥Visual
FoxPro的数据引擎的威力,这样才能立于不败之地。
VC++是功能很强的开发工具,但真正地用好它不容易,开发效率也不高。如果使用VC++开发应用程序还象VB那样只会使用控件,那么还是别使用VC++了,因为Visual
FoxPro本身是VC++编写的,是历代最优秀的程序员智慧的结晶,为什么有了VC++还要花精力编写Visual FoxPro,这本身就很说明问题。
又有人把Power Builder请出来与Visual
FoxPro作比较,两者都是适用于数据库应用程序的开发。就数据库系统的开发而言,Visial FoxPro可以开发单用户系统、网络环境下的文件服务器系统、客户机/服务器系统、Web
Server、数据处理的COM组件、Web Service,可以说除了Web界面无法开发之外,凡是与数据库系统有关的开发领域,Visual FoxPro都很好的支持。PB的起点在客户机/服务器系统,也能很漂亮的完成工作,不过还是一个数据库开发工具,从这方面讲与Visual
FoxPro是一个级别的产品,此中取舍全凭个人喜好。另外,PB的开发方式与众不同,用了他以后再改学别的会比较困难。
所有这些语言与Visual FoxPro相比,最大的区别就是:Visual
FoxPro是程序设计语言与DBMS的完美结合,而Vc++、Delphi、Vb、PB都只是编程工具,而不是DBMS。Visual FoxPro的这一特性,决定了它更合适于任何类型的企事业单位。
许多人认为Visual FoxPro只能用来开发单用户系统或是文件服务器构架的小型网络系统——这是谬误。网络数据库如Oracle、SQL
Server、Sybase与Visual FoxPro相比较,它们在系统开发中的作用是不一样。前者是作为服务器端的后台数据库管理,后者一般作为客户端开发应用,两者是相辅相成的。可以用Visual
FoxPro开发C/S结构的系统。在C/S构架中我们常常选择Visual FoxPro作为客户端开发工具,以Oracle、SQL Server等网络数据库压在后台,使用Visual
FoxPro内置的Remote View和SPT技术,这样就可以完美地解决问题。
三、Visual FoxPro是现有数据处理系统的重要组成
近两年,各级统计机构都在尝试开发各种类型的统计报表处理系统,主要方向是两个,一是“企业报表网上直报”系统,另一个是“通用报表处理”系统。
“网上直报”系统的主要功能是企业通过Internet网络,在线或离线填报统计数据,再通过网络将数据直接传送到数据库服务器中。此系统将过分依赖网络资源,对网络带宽要求很高,而且面对非常复杂的报表审核时,对系统服务器的配置要求就很高。
“通用报表”系统主要的目的是,通过一个自成体系的报表开发工具,实现对统计报表定制、设计,完成数据录入、审核、备份、上报、汇总、打印等功能。它的主要问题在于,系统工程浩大,开发难度大,如果系统测试不全部,对应用将产生致命的影响;既然要实现通用,必然会在灵活性上做出一定的牺牲,对特殊功能支持不足。
随着计算机的普及,由企业通过数据处理程序实现数据质量控制,进而提高整体数据质量,必将成为统计方法制度的改革的方向。
从企业方面考虑,如果能够通过网络直接上报数据,将是非常方便的,所以说“网上直报”的应用前景是广阔的。但是由于“网上直报”需要服务器端投入大量的资金进行网络扩容和硬件改造,对于部分区县来讲会存在一定难度。另一方面,由于部分企业因为管理方面的原因或经济方面的原因,或出于数据安全的考虑,不能上网报数。这样一来就需要另一种数据处理软件来填补空白。
“通用报表”系统能否填补这种空白吗?
由于“通用报表”系统包括了报表设计功能和数据处理功能,因此不适合下发到企业应用。原因之一是,企业对于应用软件的要求是简单,毕竟企业的统计人员不都是计算机高手,他们只需要自己使用的部分,过多的功能会造成应用过程中的困难。原因之二是,报表设计功能一同下发后,不论是有意还是无意,如果出现企业改变某些设定的情况,必定要造成上报后的数据混乱。
所以我们说,Visual FoxPro是不能上网的企业实现数据处理最适合的软件。Visual
FoxPro程序设计后,通过编译、制作安装盘,就可以在任何Windows环境下运行,对计算机系统要求低,适用面广。而且编译后的程序,企业不可能修改,安全性较高。
回顾十多年来统计数据处理软件的发展历程,虽然出现了多种报表开发系统,但仍以Fox系列软件为主导,从Dbase3到Foxbase,再到Foxpro25,这一系统产品已经被广大的程序员和统计人员所接受。
Visual FoxPro具有着向下兼容性,现有的程序员和使用者可以很快地容入到新的系统环境中。在现在的大学课程中,也几乎都设有Visual
FoxPro,新参加工作的人员也能很快地重新拾起。
所以说,Visual FoxPro足以与任何当前流行的开发工具相媲美,使用Visual
FoxPro,我们能够开发出经得起比较、经得起市场风浪、经得起生产实践考验的系统。Visual FoxPro仍将是统计数据处理的重要工具。
朝阳区统计局计算机中心 杨杰 张沛忠
2003年4月5日