欢迎
游客
,
注册
|
登录
|
会员
|
界面
|
简洁版本
|
在线
|
帮助
商都网教育宝典宝库
商都网教育宝典宝库
计算机
等级考试
在VFP中建立C/S机制
本主题被查看749次, 共1个帖子, 1页, 当前为第
1
页 选择页数: 1 跳转到第
页
上一主题
下一主题
标题: 在VFP中建立C/S机制
huahua
-[尕硴]
超级版主
UID: 71
来自:
精华:
130
积分: 14003
帖子: 12909
注册: 2007-10-22 17:59:00
状态:
离线
威望: 444.00
金钱: 3355.00 元
发短消息
用户资料
树型
回复
引用
只看楼主
2008-05-30 15:51
在VFP中建立C/S机制
一、C/S的应用形式
在应用中,人们多把C/S的应用程序分成两部分:让客户程序驻留在网络的前端工作站(一台微机)上,服务器处理程序则在网络的后台,其分布结构见图1。当客户(在工作站上)通过请求的方式提出了所需要的服务时,服务器不必关心客户程序的功能,只需响应请求就行。
在这种结构中,服务器的硬件必须具有足够的处理能力,这样才能满足各客户的要求。
从概念上看,“服务器”的含义非常广泛,数据库服务器只是其中的一种。数据库服务器至少应提供对数据的存取、加工、处理等服务,同时还要提供完善的安全保护及数据的完整性等处理,并允许多个客户同时访问同一个数据库。因此,客户可以不用考虑对数据的安全、优化、完整性等基础处理,只需专心自己的工作。
客户应用程序除了向服务器提出请求外,还要分析从服务器返回的信息(包括数据和指令),并据此作一些再处理(如向操作者显示相应的数据、要求补充输入一些数据等)。
中介(MiddleWare)是C/S系统中的一种系统软件,它负责链接客户与服务器。客户与服务器联接的最底层是网络的硬件,但对应用级的程序员来说,关心的焦点还是它们在软件上的通信链接。因为C/S的环境复杂,而且涉及多种规程及协议,所以还必须依靠中介软件才能有效地降低工作难度。中介软件能够把使用者与复杂的通信规程、硬件平台及操作系统隔开,数据通过中介在客户与服务器间流动,客户与服务器通过中介软件进行平稳互访,这种方式无疑大大降低了编程者的技术难度及工作量。
目前已出现了很多有关中介的标准及软件,我们在VisualFoxPro上见到的就是ODBC。它处在客户与服务器之间,有效地隐蔽了C/S操作的复杂过程。
二、设计C/S系统的基本原则
这里只考虑客户与服务器分别在不同硬件平台上的C/S系统(即基于网络的C/S系统),它们在设计时应遵循以下原则:
1.尽量让客户机完成针对特定用户的事务处理
因为服务器由多个客户机共享,如果把每个用户的特定处理都放在服务器上,就会增大服务器的工作量,因而降低其响应速度,延长客户申请的等待时间,所以尽量让客户机完成针对特定用户的事务处理,目的是为了减轻服务器的负担,提高C/S系统的整体性能。
2.尽量让服务器管理全部的共享资源
可共享的资源包括数据、部分外设(如扫描仪、打印机等)及基础服务处理(如通信),这些都应由服务器来管理,以保证各用户都能享用。对于共享数据,由服务器集中处理还有助于保证数据的完整性、一致性和安全性。
3.尽量减少客户与服务器间传送的数据量
在网络间传送数据,可能产生数据错误、丢失、延时、故障等问题。数据传递得越多,产生的问题、要求恢复的可能性也就越大。而且网络上堆积了大量数据,必然会降低系统对其他客户机的反应速度,同时影响客户之间及客户与服务器间的通信(通信也是一种共享资源)。所以,减少网络中数据的传递量,有助于保证C/S系统的整体性能。
4.坚持局部数据在局部存储和管理
这是为了减少网络上的数据传输量、减轻服务器的压力、增强服务器对请求的响应,提高C/S系统的总体性能。
根据上述原则,在做基于数据库的C/S系统设计时,可以把接口表示部分(如输入、输出界面)放在客户机上,把数据的管理部分(如查询、存储、更新、优化等)放在服务器上。对其他处理逻辑,则要根据具体情况进行分析,例如对于计算密集型的处理,可把计算部分放在客户机上,而有关数据特性的一般约束处理(如完整性、安全性、一致性等)则可放在服务器上。
对于数据的分布,也应作妥善安排。对于提供给各客户共享的数据,应放在服务器上(作为远程数据来处理);而对于各自的独用数据,则应放在自己的客户机上。
三、VisualFoxPro中建立C/S的机制
用VisualFoxPro构造C/S系统时,用ODBC作中介软件,由ODBC完成客户与服务器间的通信。这时各应用程序都通过各自的驱动程序与数据库相联,ODBC通过自身的驱动程序管理器来管理ODBC与驱动程序间的交互,程序员则可以使用相同的程序调用来实现与不同数据源的通信。
目前,Windows下的ODBC驱动程序和驱动程序管理器均以DDL(动态数据链接库)的形式实现。在VisualFoxPro的ODBC支持下,客户的应用程序可以实现以下功能:
①与(远程)数据库建立或解除联接;
②VisualFoxPro可通过当前已有的驱动程序与Oracle7.0、SQLServer、MSParadox等数据库联接。其他种类的数据库只要能提供自己的驱动程序,也能与VisualFoxPro相联;
③对远程数据库进行常规操作(如修改、查询等),并获取相应的操作结果;
④接收以ANSIError为标准的错误信息;
⑤对远程数据库上的表、记录、视图、索引等进行检测;
⑥向各用户提供统一的登录界面。
VisualFoxPro是C/S的前端开发工具,它通过ODBC对后端数据库进行存取的方法有两类:SPT(SQLPass-Though)和RemoteViews(远程视图)。SPT提供的函数类似低级文件函数,用户可用此直接访问后端数据库。用户使用SPT时,需用一组以SQL打头的函数来编写“打开联接”、“错误检测”、“命令传递”等指令。VisualFoxPro中的视图有两种:本地和远程,操作时可一视同仁。远程视图在ViewDesigner中创建,这时需说明远程数据库中要访问或修改的“部位”及范围。当这个视图建立后,我们就可以像使用VisualFoxPro的一个局部表一样,用“日常”的VisualFoxPro命令对其操作。
访问后端数据库时,必须先通过联接。在VisualFoxPro中,通过联接可以创建远程视图,修改其属性则可以优化各部分间的通信。VisualFoxPro中的联接有两种:隐含联接和命名联接。这里联接被当作对象来处理,以下是联接中常用的一些属性:
属性名内容说明
PassWord联接时用的口令
DataSource通过ODBC所联接数据源的类型
PacketSize确定联接时所用网络数据包的大小
ConnectString用于联接注册的字符串
Asynchronous确定所用联接是同步还是异步
ConnecName建立游标时所用联接的名字
UserID用户标识
Shared确定联接时可否共享
PatchMode确定批模式
……
在用SPT访问后端数据库时,必须使用命名联接。
在一般的应用中,可以将远程视图与SPT结合使用。可在本地数据库中定义后端数据源的远程视图,然后通过Form(或FormSet)对已联数据源进行日常操作。这是一种简洁、实用的C/S系统应用。
四、用VFP实现C/S系统的基本方法
在建立C/S系统时,实现步骤为:
第一步,根据后端数据源的类型装入相应的ODBC驱动程序,同时做一些相应的设置。
下面以安装SQLServer的驱动程序为例进行说明:
DataSourceName标识数据源的名子
Description说明存储在数据源中的数据
Server标识网络上SQLServer的名字,目前可选的服务器有MSWindowsforworkgroups;BanyanVINES;MSLANManager;IBMLANServer或DECPathworks;TCP/IPNetworks;NovellNetWare。
NetworkAddress说明SQLServerDBMS的网址
NetworkLibrarySQLServer驱动程序所用的与网络通讯的动态链接库
还有其他一些用于说明诸如数据库名、所用语言等选项的参数,需根据情况确定。设置完上述参数后,即完成了ODBC驱动程序的安装。
第二步,进入VisualFoxPro中,建立与后端数据源的联接。
因为联接属于数据库的一部分,所以必须先进入VisualFoxPro,创建或打开一个数据库,然后建立命名联接(用指令:CreateConnectionΙ联接的名字Λ),在VisualFoxPro提供的ConnectionDesigner窗口中填写一些值及属性(见上节所列),就完成了一个联接的建立。
第三步,建立远程视图。
因为远程视图从逻辑上说属于本地数据库的一部分,所以在建立远程视图前,必须先打开数据库(用命令:OpenDatabaseΙ数据库名Λ),并进入该数据库的修改状态(用命令:ModifyDatabaseΙ数据库名Λ)。在VisualFoxPro弹出的DatabaseDesigner窗口内的工具条中,选点NewRemoteView图标,随后VisualFoxPro会让你选择命名联接和远程数据库中的表;在你完成这些选择后,VisualFoxPro会再弹出一个ViewDesigner窗口,让你在这个窗口中进一步确定,这个表中的哪些数据项将出现在所建立的远程视图中。这些数据项将在SelectedOutput下的列表框中显示出来。
第四步,建立应用程序。
下面举例说明建立应用程序的方法。为了说明方便,这里把MSAccess数据库作为远程数据库(选其他数据库时的处理方法及步骤均相同),在其上建立一个名为worker的表,见右表1。
假定我们已按上述前三步的方法装好了ODBC驱动程序,
已打开了名为MyData的本地数据库,并建立了名为MyCon的与远程数据库的联接。
例1.在图2窗口内,查看职工状况表。
我们需要先在本地库上建一个远程视图。可以用上述第三步的方法,把远程视图名定为V1,此时需选择联接名为MyCon。下面是V1的描述语句:
SELECTworker.Wrk-id,worker.Wrk-name,worker.brithday,worker.specialityFROMworker
然后再建一个表单(Form),在上面做一个Grid型的组件(对象),把该组件的RecordSource属性值设成V1。这就完成了一个(远程)职工信息观察窗口的制作。
例2.在图3所示的Form内,当在“职工代号”对应的文本框内输入一个代号值后,就在其他的文本框内显示这个职工的其他信息。
可参照上例方法建立远程视图V2。其描述语句为:
SELECTworker.Wrk-id,worker.Wrk-name,worker.Brithday,worker.specialityFROMworker;
WHEREworker.Wrk-idΚ?Cinp
然后再建一个Form,做成图3的样子,各文本框(对象)的ControlSource分别指定为V2.wrk-name、V2.brithday、V2.speciality。最后再定义与职工代号对应的文本框的Valid方法:cinpΚthis.Valus
Κrequery(″V2″)
thisform.Refersh
例3.直接在程序中使用SPT,查看远程数据库中的职工信息:
connectionΚSQLCONNECT(′MSAccessDatabasese′,′username′)
IFconnectionΛ0
IFSQLEXEC(connection,′select fromtable′1,′MyCursor′)Λ0
brow
ELSE
WAITWindows′不能查看这个远程数据库!′
ENDIF
ELSE
WaitWindows′无法建立联接!′
ENDIF
#1
大
中
小
本主题被查看749次, 共1个帖子, 1页, 当前为第
1
页 选择页数: 1 跳转到第
页
论坛跳转...
胎教早教
准备怀孕
怀孕期
出生与分娩
婴儿期(0-1岁)
幼儿期(1-3岁)
学龄前(3-6岁)
中小学
课件
试题
中招
中招动态
招生快讯
相关政策
考试辅导
语文
数学
英语
物理
化学
生物
政治
历史
地理
家长交流
历年中招资料
满分作文
高考
高考动态
高考状元
历年试题
家长必读
志愿填报
心理减压
复习技巧
考生经验
备考辅导
高考大纲
历年分数线
高考常识
高考指南
语文
数学
外语
物理
化学
生物
历史
地理
政治
文综
理综
高考满分作文
家长
教师
读书
作文
郑州新东中学
学校动态
学生天地
高等教育
移民留学
成人高考
自学考试
考研
论文
外语
雅思
托福
四六级
实用英语
职称外语
公共英语(PETS)
商务英语
英语口语
小语种
英思力美语
在线留言
学校动态
课程
学生作业
英思力相册
学英语资料
计算机
办公应用
软件开发
平面动画设计
IT资格认证
等级考试
网络工程
初学者之路视频教程
计算机基础
Windows
Word2003
Execl2003
Powerpoint
Flash
Deamweaver
Fireworks
黑客基础
北大青鸟
青鸟新闻
开班信息
青鸟师资
在线问答
学员相关
技术文章
职业资格
企业培训师
资料库
历年试题
案例探讨
相关政策
财务会计
公务员考试
营养师
营养动态
职业前景
健康权威
学习指导
营养知识
健康食谱
心理咨询师
心理俱乐部
学习指导
花季少年
爱情婚姻
心理障碍
人在职场
职业前景
经典案例
导游
司法考试
建筑工程资格
外贸资格
医药资格考试
教师资格考试
电子商务师
人力资源师
资料库
历年试题
案例探讨
相关政策
技能培养
汽车驾驶
美容美发
美容
美发
化妆
整体形象设计
相关课程
人才信息
茶艺
调酒
厨师烹饪
手机维修
音乐乐器
舞蹈健身
企业管理
人力资源
市场营销
管理激励
管理书籍
管理视频
信诺专栏
职场招聘
招聘信息
职场沙龙
现在的时间是 2008-09-08 18:30:10
版权所有
商都网教育宝典
Powered by
Discuz!NT
1.0.6666 Copyright © 2001-2008
Comsenz Inc
.
Processed in 0.064 seconds