【vfp开源代码栏目提醒】:网学会员vfp开源代码为您提供VF学生数据库表实验与心得 - 实验数据参考,解决您在VF学生数据库表实验与心得 - 实验数据学习中工作中的难题,参考学习。
VF 学生数据库表实验与心得 软件 Visual Foxpro 的简称,又叫
VFP.是数据库管理系统,集成编程语言,是开发小型数据库的前端工具。
其实在人们的理解里,VF 最常见的两种可能—— , 世嘉主机游戏:快打Virtua Fighter)也 叫 VR 战士; 计算机编程语言:数据库软件 Visual Foxpro; 也可能是法国著名服装公司:VF Corporation威富公司,旗下由著名户外运动品牌-The North Face 和牛仔品牌-Lee。
下面是本人对 visual foxpro 的一点点认识。
VF 是推出的数据库软件 visual foxpro 的简称,又叫
VFP.是数据库
管理系统,集成编程语言,是开发小型数据库的前端工具.Visual ,该技术使得在 Windows 环FoxPro 中的 Visual 的意思是“可视化”境下设计的应用程序达到即看即得的效果。
Visual FoxPro 面向对象的开发环境使得无论是组织信息、运行、查询、创建集成的关系型数据库系统,还是编写数据库管理应用程序,都变得十分轻松。
作 为 市 场 上最 灵 活和 功 能最 强 大 的数 据 库管 理 系 统, VisualFoxPro 拥有悠久而辉煌的发展历史。
它初创时是 Fox Software 公司 “Fox”的 FoxBASE 产品, (这是国际编程界对它的称呼)一种可靠、便捷和高效的程序员用的数据库产品而名闻遐迩。
世界上没有一种产品像 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 数据库开发市场带来了革命性的变化。
这些技术是: 加入了 Rushmore 技术,它能从事许多难以想象的复杂工作。
突然之间,带有以百万计数的记录的表格在 PC 数据库系统中不仅成为可能,而且可以非常容易地加以实现,无需转用其他比较昂贵的技术;Rushmore 最重要的优点在于它是完全自动化的,不用用户花费精力和时间.因为有了 Rushmore 技术,再加上 Fox 天生的快速,即使在今天 Visual FoxPro 仍然是最快的桌面数据库引擎。
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 了.这些特性是: ,也叫 DBC,它增加了开发 数据库容器(Database Container)人员多年盼望的对存储过程的支持、与表格相关联的数据规则和一系列的附加数据功能。
远程数据的无缝连接.谈到连接远程数据的处理,大家往往会想到 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 数据源的视图。
另外为了使 VisualFoxPro 成为完整的 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 进入了 Visualstudio 家族,并且 Visual FoxPro 将不再升级的谣言也是在这个时期出现。
在 Visual FoxPro 6.0 出现之前,微软计划推出 DNA,演化到今天就是.
NET,并承诺把 Visual FoxPro 发展成健壮的中间层工具,所以这以后 Visual FoxPro 的变化初级用户就不太容易感觉了。
Visual FoxPro 6.0 也没有根本上的变化,不过有些变化还是相当明显的.Access 和 Assign 这两种方法在控制放入你的对象中的数据 (组件库) Foundation方面很有创意.运用新的 Component Gallery 和Classes基础类,你能很容易地转向创建面向对象的应用程序的工作.对 COM 支持的更好,在 Server Pack 3 后我们可以用 VisualFoxPro 创建多线程的 COM 组件。
Visual FoxPro 7 是 Fox 第一个可视化版本——Visual FoxPro 3以后的最具有革命意义的一次产品升级换代.关于它的特性,稍候本文会有专门段落讲解。
Visual FoxPro 的语言是由 Xbase、SQL、OOP 构成的.我不知道这样分解是否合理,我只是从 FoxPro 的发展历史得出以上结论的.其实以上三者在 Visual FoxPro 完美的融合在一起了,已经与 VisualFoxPro 血脉相连、不可分割,很多语句、函数很难区分它属于哪个门类(也没必要)。
再者 Xbase 这一叫法也不十分妥当,这样容易让人误会,好像 Visual FoxPro 的语言是没有发展的“死语言”、是十几年前的“老古董”,其实 在 FoxPro 每一次升级中(现在已是 VisualFoxPro 7)都会对这部分语言进行修订、增补.我看还是这样:Visual “Visual FoxPro 语言”FoxPro 语言就叫它: ,它既不同于任何以往的Xbase , (最多有历史渊源) 也不同于其它的编程语言。
这就象
Delphi那样,是 Object Pascal 语言,不是以前的 Pascal;
VB 就是 VB,不是以前的 Basic。
对 从 Fox 进入可视化的时代后, COM 技术的支持一直是 VisualFoxPro 在过去、现在、将来不断改进的地方.面向对象程序设计(OOP)的最大的好处就在于
代码的重复使用.然而,OOP 只是一种解决
代码重复使用的一种优秀的
方案(solution)。
单纯利用 OOP 技术不仅要求所有对象都必须用一种语言完成,并且你还需要得到原程序
代码嵌入应用程序(就像我们在 Visual FoxPro 开发使用 Class 那样)。
如果对象是有你或你的公司完成的这些可能不是什么问题,但如果对象是由其他人或其他公司写的这就是问题了……再者为了节省资源我们常希望把一对象放在远程的
计算机上供许多应用程序使用,怎样简单、安全完成这个任务呢?看来,单有 OOP 是不行的!于是微软提出了 Component Object Model(COM)技术,有了它我们就不需要把对象源程序嵌入我们的应用程序中,就可以使用其他语言开发的对象,就可以分布的使用对象了。
COM 技术提供四种不同的特性,Visual FoxPro 支持所有的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、RemoteAutomation 中使用的组件都可以用 Visual FoxPro 来开发。
VisualFoxPro 的这种能力是从 5.0 开始具有的,到了 6.0 的 SP 3 已经可以开发出多线程的组件了,这些在上文已经有过论述.以后的 VisualFoxPro 版本一定会对 Automation,特别是 Remote Automation 有更好的支持,无论是开发 server components,还是由 Visual FoxPro充当客户程序。
综上所述,Visual FoxPro 是创建关键任务的、企业范围的、面向对象的单层次、双层次、多层次应用程序的重要开发工具,这些应用程序可以在本地或全球范围内进行配置。
到这里,有人会问:“Visual FoxPro 已经过时了吗?” 从这样的问题出现到今天,Visual FoxPro 的版本已经发生了数次变化,就是 Visual FoxPro 6.0 与 2001 年春天推出的 VisualFoxPro 7.0,直到现在的 Visual FoxPro 9.0。
答案是不会!起码现在不会,微软已经于,2007 年前后,宣布 Visual Foxpro 停止研发,
VFP9 是最后一个官方版本。
微软在曾经 2007 年 3 月份的时候声称,将会对 Visual Foxpro 开放源
代码到,其
代码共享社区站点CodePlex 上,但是截止到 2010 年 4 月,在 CodePlex 似乎似然
搜索不到 Visual Foxpro 的源
代码。
在 微 软 官 方 网 站 释 出 了 一 份 公 告 A Message to theCommunity,说明未来将不会再推出
VFP 10,并且持续
VFP 9 的支持到 2015 年,之后只会在 2007 年夏季推出 SP2。
2006 年进行的 Sedna 项目则是增强
VFP 对 SQL Server 2005 与 Vista 的支持,其他的一些项目则已经
开源到 CodePlex。
在国外,一个程序员、一家公司把他们使用的开发工具视作一项投资,作为 Visual FoxPro 的开发厂商微软公司就必须保护客户的投资权益,这是很基本的商业原则,微软绝对不敢随意淘汰有着近 50万用户的 Fox,除非永远不想赚这 50 万用户的钱了。
为什么会有 Visual FoxPro 要淘汰的传闻呢,我不是很清楚.但这两年微软对 Visual FoxPro 的不宣传态度却是为这股谣言起到了推波助澜的作用。
另外 Visual FoxPro 确实是一个容易引起误会的产品,初级用户很容易对它产生“不怎么样的”评判,于是加上那谣言就产生了“Visual FoxPro 真的要被淘汰了”的幻觉了。
为什么说 Visual FoxPro 是容易引起误会的产品呢?我总结以下几点原因: 面向对象与面向过程之争 我们说 Visual FoxPro 是面向对象化的语言,是有根据的.面向对 、象 化 的 语 言 必 须 具 备 四 个 特 性 : 抽 象 ( Abstraction ) 封 装(Encapsulation)、继承(Inheritance)、多态(Polymorphism).对照一下 Visual FoxPro,是不是支持这四大特性! 当然,Visual FoxPro 与 Object Pascal 一样都是历史悠久的语言,所以语言中有很多面向过程的语素。
我知道很多学校在教学中,只是教导学生们使用 Visual FoxPro 的面向过程的语言特色,而忽视了面向对象的教学,同样的问题也存在于广大的 Visual FoxPro 程序员中.我们必须明白:不能因为我们没有使用 Visual FoxPro 面向对象的强大功能,而说 Visual FoxPro 不是面向对象的语言,这就像不能因为天下雨、没有出太阳,而说太阳被天狗吃掉了——多么的幼稚可笑! 我们知道 Visual FoxPro 对数据的操作沿用了多年来的面向过程的做法,这与现在流行的开发工具有很大的不同.我觉得,微软这样做是有它的道理的: 第一,面向过程的数据处理,更能发挥 XBase 语言体系的灵活与随意的特色.这一点,你用过其他的数据库开发工具,然后再用用Visual FoxPro 就明白了。
第二,不直接提供面向对象的数据处理组件,不代表不允许用户封装自己的数据处理组件.很多优秀的 Fox 程序员,都会自己封装专门数据处理组件,这才是 Visual FoxPro 编程的高尚境界! 面向记录与面向集合之争 关系型数据库处理可以分为面向记录操作和面向集合操作。
各种开发工具支持的客户端光标体系就是面向记录操作的,它们支持记录之间的绝对定位,更明白地说就是可以在记录之间导航,诸如:SKIP、GO TOP 之类的语句.Visual FoxPro 无疑是此道的绝对高手,20 年的语言发展,聚集了大量面向记录的语言要素.这是因为这样,我们才会反复强调:Visual FoxPro 的 Cursor 体系灵活、强大! 各类大型数据库,如 Oracle、SQL Server 是面向集合处理的代表,看看正统的 SQL 语言,绝对没有数据
导航之说,数据记录之间是平等的,一切都要讲关系、摆条件! 随着技术的发展,人们开始注意到,不能分割这两种对数据的操作方式,于是大型数据库支持了游标语素,Fox 也支持符合规范的SQL 语言。
产品定位导致 Visual FoxPro 变化不易为人们感觉。
微软要把Visual FoxPro 作为三层构架(或是多层构架)的中间层开发工具。
什么是三层构架呢?第一层是用户界面:它包含了用户界面,让使用者输入,输出,
查询等工作;第三层是资料层:它就是用来放资料的地方,一般是指后端数据库,主要有包括 Oracle、SQL Server等,它主要是提供一个很大的地方,来有规则的存放数据;第二层是商务逻辑层(中间层),有人要说了:存取资料,直接从第一层跳到第二层可不可以?当然可以,没有人规定不能走捷径,而且从数据库直接抓资料,既快又好,那为什么搞出个第二层呢? 商务规则是经常变化的,比如上班从 8 点改为 10 点,那电脑怎那么知道老板因为不景气少让大家上二个小时班呢它一定无法知道,你必须告诉它,这时问题就来了,如果你有很多部电脑,例如:100 台,你就得一部部换新程序.如果这是一个挂在 Internet 上的网络程序,难道总让用户 download 新程序不成? 更重要的是,在大量客户存在的环境里,传统的两层构架根本没有能力承担巨大的工作压力,必须通过某种中间系统实现压力平衡,这就是中间层的另一妙用! 中间层是没有图形界面设计的
代码编写,并且是 OOP 方式的
代码编写,不仅要熟悉后台数据库的特性,还要考虑前台界面工具的特性,最重要的是商务逻辑的构架,同时还要求懂得 IIS、MTSCOM、NT 的安全设置等复杂枯燥的东西.有趣的是,近年来 Visual FoxPro的各种改进,更多的是在这些方面下功夫,到了最新版本的 VisualFoxPro 7 更是在此方面增加了若干特性,下面就用四个
问题来说明Visual FoxPro 在开发中间层方面的贡献: 问题一:Visual FoxPro 能开发出稳定、有效率的 Server 程序吗?能,在 1999 年发布的 Visual FoxPro SP 3 中微软赋予了 VisualFoxPro 开发多线程进程的内组件的能力,并增加了新的运行时刻库VFPnT.DLL(n 代表版本号),支持其运行,在这个运行库中,删除了大量老式 的和界面 控制元 素,使得 它更小巧 .但是 由 于 Visual ,所以这FoxPro6 本身不是很稳定(加打 SP4 或 SP5 才有所改善)个很棒的功能在 Visual FoxPro 6 下并不能充分发挥,直到 VisualFoxPro 7 出现才使它的显示出英雄本色! 问题二:分布式的事务、动态负载平衡怎么实现?Visual FoxPro7 对 COM 有很好的支持,借由 COM 就可以解决这两个问题了! 问题三:作为 Server 程序,客户程序怎样与 Server 交换数据集合?这是 Visual FoxPro 6 开发的 Server 程序的致命弱点,我们知道Visual FoxPro 是用来处理数据的,但不能与外界自由交换数据集合会大大降低开发、使用以及程序运行效率!在 Visual FoxPro 7 里我们 XML 就可以快速、轻易的传递大型数据集合,真正做到数据集的来去自由.现在回想 Visual FoxPro 6 中我们用的那种“循环属性”的做法,真有天上与人间的感受! 问题四:能不能让 Visual FoxPro 开发的 Server 任由客户使用,叫干什么就干什么?可以的,在 Visual FoxPro 7 里提供了一个全新的函数:ExecScript。
有了它,就可以一次执行多条客户端送来的符合 Visual FoxPro 规范的语句:你可以定义变量、做查询、更新数据、修改表结构…… 微软确实实践着让 Visual FoxPro 在中间层运行的承诺.但遗憾的是:由于国内用户的水平、国内软件应用的领域,对大多数 FoxFans 无法感受 Visual FoxPro 日新月异的变化——对他们来说,Visual FoxPro 确实“没有改变”! Visual FoxPro 只能局限于桌面应用程序的开发吗? 技术在进步,软件技术的应用不断在拓宽,Internet 已经是众多开发工具竞相支持的应用领域.Visual FoxPro 从版本 5 开始不断扩充对 Internet 的支持,到最新的 Visual FoxPro 7 更是增加了对 WebService 的支持.我们可以把 Visual FoxPro 对 Internet 的支持分为三大部分: 第一,简单的 HTML 的转换.Visual FoxPro 自带的“Web 发布”就是这类型的工具,利用
HTML 和 DHTML 的模版,支持 VisualFoxPro 数据的 Web 化,这是一种全静态的 Web 支持。
第二,适合于企业内部使用的 Active Document 技术。
是不是希望快速、简单的把 Visual FoxPro 应用程序转变为 Web 应用程序,这个 Active Document 技术就是最佳的选择.它支持 App 程序运行在 IE 中,它的缺点是:在客户端必须安装 Visual FoxPro 的运行库、客户端与数据库间依然是紧密的有状态的关系,属于 F/S 构架——只是界面能够运行在 IE 之中了。
它的开发快速以及它依然基于传统构架,决定了这个技术只能运行在企业内部,一般不能在广域
网络中发布。
这技术是 Visual FoxPro 6 提出的,当.