C/S的主程序要如何写

lsyyfj 2009-12-26 04:34:23
我要学习C.S的SPT做程序,在写主程序时要注意什么请说明下
...全文
43 3 打赏 收藏 举报
写回复
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
捧剑者 2009-12-26
  • 打赏
  • 举报
回复
xuexi
十豆三 2009-12-26
  • 打赏
  • 举报
回复
   
在VFP中建立C/S机制
[size=3][size=4]在VFP中建立C/S机制
一、C/S的应用形式
在应用中,人们多把C/S的应用程序分成两部分:让客户程序驻留在网络的前端工作站(一台微机)上,服务器处理程序则在网络的后台,其分布结构见图1。当客户(在工作站上)通过请求的方式提出了所需要的服务时,服务器不必关心客户程序的功能,只需响应请求就行。
在这种结构中,服务器的硬件必须具有足够的处理能力,这样才能满足各客户的要求。
从概念上看,“服务器”的含义非常广泛,数据库服务器只是其中的一种。数据库服务器至少应提供对数据的存取、加工、处理等服务,同时还要提供完善的安全保护及数据的完整性等处理,并允许多个客户同时访问同一个数据库。因此,客户可以不用考虑对数据的安全、优化、完整性等基础处理,只需专心自己的工作。
客户应用程序除了向服务器提出请求外,还要分析从服务器返回的信息(包括数据和指令),并据此作一些再处理(如向操作者显示相应的数据、要求补充输入一些数据等)。
中介(MiddleWare)是C/S系统中的一种系统软件,它负责链接客户与服务器。客户与服务器联接的最底层是网络的硬件,但对应用级的程序员来说,关心的焦点还是它们在软件上的通信链接。因为C/S的环境复杂,而且涉及多种规程及协议,所以还必须依靠中介软件才能有效地降低工作难度。中介软件能够把使用者与复杂的通信规程、硬件平台及操作系统隔开,数据通过中介在客户与服务器间流动,客户与服务器通过中介软件进行平稳互访,这种方式无疑大大降低了编程者的技术难度及工作量。
目前已出现了很多有关中介的标准及软件,我们在VisualFoxPro上见到的就是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可通过当前已有的驱动程序与Oracle7.0、SQLServer、MSParadox等数据库联接。其他种类的数据库只要能提供自己的驱动程序,也能与VisualFoxPro相联;
③对远程数据库进行常规操作(如修改、查询等),并获取相应的操作结果;
④接收以ANSIError为标准的错误信息;
⑤对远程数据库上的表、记录、视图、索引等进行检测;
⑥向各用户提供统一的登录界面。
VisualFoxPro是C/S的前端开发工具,它通过ODBC对后端数据库进行存取的方法有两类:SPT(SQLPass-Though)和RemoteViews(远程视图)。SPT提供的函数类似低级文件函数,用户可用此直接访问后端数据库。用户使用SPT时,需用一组以SQL打头的函数来编写“打开联接”、“错误检测”、“命令传递”等指令。VisualFoxPro中的视图有两种:本地和远程,操作时可一视同仁。远程视图在ViewDesigner中创建,这时需说明远程数据库中要访问或修改的“部位”及范围。当这个视图建立后,我们就可以像使用VisualFoxPro的一个局部表一样,用“日常”的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中,建立与后端数据源的联接。
因为联接属于数据库的一部分,所以必须先进入VisualFoxPro,创建或打开一个数据库,然后建立命名联接(用指令: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,worker.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

十豆三 2009-12-26
  • 打赏
  • 举报
回复
一、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系统设计时,可以把接口表示部分(如输入、输出界面)放在客户机上,把数据的管理部分(如查询、
存储、更新、优化等)放在服务器上。对其他处理逻辑,则要根据具体情况进行分析,例如对于计算密集型的处理,可把计算部分放在客户机
上,而有关数据特性的一般约束处理(如完整性、安全性、一致性等)则可放在服务器上。

对于数据的分布,也应作妥善安排。对于提供给各客户共享的数据,应放在服务器上(作为远程数据来处理);而对于各自的独用数据,则应
放在自己的客户机上。

三、Visual FoxPro中建立C/S的机制
用Visual FoxPro构造C/S系统时,用ODBC作中介软件,由ODBC完成客户与服务器间的通信。这时各应用程序都通过各自的驱动程序与数据库相
联,ODBC通过自身的驱动程序管理器来管理ODBC与驱动程序间的交互,程序员则可以使用相同的程序调用来实现与不同数据源的通信。

B/S结构跟C/S结构的区别

  所谓B/S结构,就是只安装维护一个服务器(Server),而客户端采用浏览器(Browse)运行软件,即浏览器/服务器结构。

  B/S结构的优点是维护方便,能够降低总体拥有成本。客户端运行软件,就像我们平时上网浏览网页一样,有个浏览器(通常是IE5.0)就行
了,不用安装其它软件。而且通过电话线也可以运行软件。B/S结构的软件所有的维护、升级工作都只在服务器上进行,而客户端就能获得最新
版本的软件。

  相对于C/S结构,尽管C/S结构相对于更早的文件服务器来说,有了很大的进步,但与B/S相比,缺点和不足是很明显的。

  首先,B/S比C/S的维护工作量大大减少了。C/S结构的每一个客户端都必须安装和配置软件。假如一个企业共有50个客户站点使用一套C/S结
构的软件,则当这套软件进行了哪怕很微小的改动后(比如增加某个功能),系统维护员都必须进行这样的维护;将服务器更新到最新版本;
将客户端原有的软件卸载,再安装新的版本,然后进行设置,最为可怕的是客户端的维护工作必须不折不扣的进行50次。若其中有部分客户端
是在另外一个地方,则系统维护员还必须跑到该地方再进行卸载、安装、设置的工作。 若某个客户端,忘记进行这样的维护,则该客户端将会
碰到版本不一致的问题而无法工作。 而B/S结构,客户端不必安装及维护。如果我们将前面企业的C/S结构的软件换成B/S结构的,我们看看软件
升级后,系统维护员如何维护: 系统维护员只要将服务器的软件升级到最新版本就行了。其他客户端,只要重新登录系统,使用的就已经是最
新版本的软件了。

  其次,B/S相对C/S能够降低总体拥有成本, C/S软件一般是采用两层结构的。而b/s采用的是三层结构。
两层结构中,客户端接受用户的请求,客户端向数据库服务提出请求,数据库服务将数据提交给客户端,客户端将数据进行计算(可能涉及到
运算、汇总、统计等等)并将结果呈现给用户。

  在三层结构中,客户端接受用户的请求,客户端向应用服务提出请求,应用服务从数据库服务中获得数据,应用服务将数据进行计算并将
结果提交给客户端,客户端将结果呈现给用户。

  这两种结构的不同点是,两层结构中客户端参与运算,而三层结构中客户端并不参与运算,只是简单的接收用户的请求,显示最后的结果。
由于三层结构中的客户端并不需要参与计算,所以对客户端的计处算机电脑配置要求是比较低的。

  另外,由于从应用服务到客户端只传递最终的结果,数据量较少,使用电话线也能够信任。而采用C/S两层结构,使用电话线作为传输线路
可能因为速度太慢而不能够接受。 采用三层结构的b/s的配置可以是提高服务器的配置,降低客户端的配置。这样增加的只是一台服务器(应用
服务和数据库服务可以放在同一台计算机电脑中)的价格,而降低的却是几十台客户端机器的价格。起到了降低总体拥有成本的作用。

相关推荐
发帖
VFP

2577

社区成员

VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
  • VFP社区
加入社区
帖子事件
创建了帖子
2009-12-26 04:34
社区公告
暂无公告