版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1,第12章 数据库应用的结构与开发环境,数据库应用开发概述 开放的客户端开发 数据库应用开发工具PowerBuilder 基于组件的数据库开发 Web数据库应用开发,2,数据库应用开发概述,3,开放的客户端开发,开放式客户体系结构与ODBC ODBC的基本概念 ODBC的构成 Visual FoxPro作为客户端开发工具 使用远程视图操作SQL Server 使用ODBC函数操作SQL Server,4,开放式客户体系结构与ODBC,开放式客户体系结构使得客户端应用不再紧密地依赖于数据库管理系统,用户有广泛的挑选余地来选择自己喜欢和熟悉的开发工具。甚至开发的过程都可以不依赖于数据库管理系统,
2、可以在客户端独立地进行开发,当真正联调时再连接到数据库服务器。这也有利于团队的开发方式。,5,ODBC的基本概念,ODBC(Open DataBase Connectivity)的全称是开放数据库互连,它是一种访问数据库的统一界面标准。,6,ODBC的两个部分,一部分是连接客户端的标准客户端界面。从客户端的角度ODBC遵守共同的标准,这使得不同的开发工具连接和使用数据库的方式是一样的,另一方面也使得使用不同的数据库管理系统的方式也是一样的; 另一部分是连接专门的数据库管理系统的服务器端界面或驱动程序。,7,ODBC的构成,应用程序 驱动程序管理器 驱动程序 数据源,8,ODBC函数完成哪些工作
3、?,请求对数据源的连接,获取连接句柄; 指定事务控制方式; 定义接收结果的数据区; 向数据源发送SQL语句; 接收SQL的查询结果; 处理出错信息,并将出错信息返回给应用程序; 终止对数据源的连接。,9,驱动程序管理器的工作,安装指定的驱动程序; 定义数据源,并把数据源映射到具体的ODBC驱动程序上 ; 为每个驱动程序提供ODBC函数的入口点; 为ODBC调用提供参数验证等。,10,ODBC驱动程序的具体任务,建立与数据源的连接; 向数据源提交SQL请求; 处理查询结果; 将数据源错误转换为标准错误代码,并返回给应用程序; 提交事务的开始请求、完成请求和撤消请求等。,11,什么是数据源?,数据
4、源就是通过一种ODBC连接的SQL数据库或关系数据库,它可以是PC平台上的FoxPro数据库、Windows NT平台上的SQL Server数据库或OS/2平台的Oracle数据库等。,12,Visual FoxPro作为客户端开发工具,使用远程视图操作SQL Server 使用ODBC函数操作SQL Server,13,使用远程视图操作SQL Server,Visual FoxPro的视图概念:本地视图和远程视图 连接 使用CREATE CONNECTION命令建立 建立远程视图 CREATE VIEW REMOTE,14,使用远程视图的例子,建立连接 CREATE CONNECTION
5、Myconn ; DATASOURCE MQIS USERID sa PASSWORD 建立远程视图 CREATE SQL VIEW rv_仓库 REMOTE CONNECTION myconn; AS SELECT * FROM 仓库,15,使用ODBC函数操作SQL Server,16,连接到SQL Server,SQLCONNECT(DataSourceName, cUserID, cPassword | cConnectionName),已经定义好的数据源的名字,要注册到数据源上的用户标识,与用户标识相对应的口令,由CREATE CONNECTION建立的一个命名连接的名称,17,例:
6、连接到MQIS数据源,用户标识是sa,没有口令。,gnConnHandle = SQLCONNECT(MQIS, sa,) IF gnConnHandle 0 = MESSAGEBOX(不能建立到MQIS数据库的连接, 16, SQL连接错误) CANCEL ELSE = MESSAGEBOX(成功地连接到MQIS数据库, 64, SQL连接信息) ENDIF,18,断开或注销与数据库的连接,SQLDISCONNECT(nConnectionHandle),19,对SQL Server进行操作,向数据源提交或发送SQL语句的函数是: SQLEXEC(nConnectionHandle, cSQ
7、LCommand, CursorName),由SQLCONNECT( )函数返回的连接句柄,要传送给数据源的SQL语句,用来存放结果的Visual FoxPro的临时文件名,20,例 执行SQL命令,= SQLEXEC(gnConnHandle, SELECT * FROM 仓库, MyCursor),SQLEXEC( )函数除了可以自己向数据源传送SQL语句之外,还可以执行由SQLPREPARE( )函数准备好的SQL语句。,21,动态SQL语句,SQLPREPARE()函数 SQLPREPARE(nConnectionHandle, cSQLCommand, CursorName) 该函数
8、的参数的含义与SQLEXEC函数的参数相同,但该函数的功能是将SQL语句传送给数据源,它并不执行此SQL语句,而是将它编译好准备由SQLEXEC函数来执行。,22,例 执行动态SQL语句,gcCity = 北京 = SQLPREPARE(gnConnHandle, SELECT * FROM 仓库; WHERE 城市 = ?gcCity) = SQLEXEC(gnConnHandle) . gcCity = 上海 = SQLEXEC(gnConnHandle),23,Visual FoxPro中其他ODBC函数,SQLCANCEL函数 请求中断正在执行的SQL语句 SQLCOMMIT函数 事务
9、的提交 SQLROLLBACK函数 事务的撤消 SQLTABLES函数 获得指定数据源(数据库)中表的信息 SQLCOLUMNS函数 获得指定数据源下某个表中列的信息,24,Visual FoxPro中其他ODBC函数,SQLSETPROP函数 设置指定数据源的环境参数值 SQLGETPROP函数 获取指定数据源的环境参数值 SQLMORERESULTS函数 当SQLEXEC函数返回多个查询结果集时,利用该函数可以分别将结果送到不同的Visual FoxPro临时文件,25,数据库应用开发工具PowerBuilder,PowerBuilder的数据库接口 PowerBuilder应用的构成与开
10、发方法 对象、属性与事件 PowerBuilder的开发环境 数据库操作与事务对象 初步体验PowerBuilder的开发方法,26,PowerBuilder的数据库接口,通过ODBC连接数据库 通过JDBC连接数据库 通过OLE DB连接数据库 通过专用接口连接数据库,27,通过ODBC连接数据库,28,通过JDBC连接数据库,29,通过OLE DB连接数据库,30,PowerBuilder应用的构成与开发方法,31,使用PowerBuilder进行开发的实质是:,定义对象及其属性; 定义对象上某个事件发生时要执行的程序。,使用PowerBuilder 进行应用开发的流程,32,对象、属性与
11、事件,对象、属性和事件是面向对象开发方法的三个要素 对象是组成应用程序的部件 属性决定了对象的特征 事件决定了当发生什么动作时要执行的程序,33,PowerBuilder的主要对象,窗口(Windows) 数据窗口(DataWindow) 命令按钮(CommandButton) 选择框(CheckBox) 单选按钮(RadioButton) 图形按钮(PictureButton) 下拉列表框(DropDownListBox) 列表框(ListBox),图形(Graph) 图片(Picture) 单行编辑器(SingleLineEdit) 多行编辑器(MultiLineEdit) 静态文本(St
12、aticText) 菜单(Menu) 等等。,34,例:命令按钮的常用属性,Default 在一组命令按钮中指定本按钮是否是默认选择的,取值为True或False; Enabled 说明命令按钮当前是否起作用,取值为True或False; Text 显示在命令按钮中的文字提示; Visible 说明命令按钮当前是否可见,取值为True或False; 等等,35,常用事件,单击命令按钮的Clicked事件 双击图片的DoubleClicked 窗口打开时的Open事件 数据窗口中记录行改变的RowFocusChanged事件 等等,36,PowerBuilder的开发环境,工作空间和目标 Pow
13、erBuilder的工作空间(8.0版以后才有)可以看作是开发各种应用的“空间”或“容器”,可以根据需要在一个工作空间中建立一个或多个目标(应用),可以同时打开和编辑多个目标中的对象,可以同时编译和部署多个目标。 PowerBuilder目标可以是PowerScript目标(客户端可执行程序或服务器端组件),也可以是Web目标(Web应用)。,37,画板(Painter),应用(Application)对象画板 窗口(Window)画板 菜单(Menu)画板 数据窗口(DataWindow)画板 数据库(Database)画板 对象库管理(Library)画板 用户对象(User Object
14、)画板 调试工具(Debug)画板,38,数据库操作与事务对象,通过事务对象完成对数据库的操作 什么是事务对象? PowerBuilder的事务对象是PowerScript与数据库的通讯区 如果需要同时和多个数据库相连或进行多种数据库操作,则需要多个事务对象变量 默认的全局事务对象变量是SQLCA 事务对象类型是Transaction,39,事务对象,每个事务对象有15个属性,其中10个用于给出连接数据库的信息,5个用于返回操作数据库的结果代码(错误或成功)。对于不同的数据库及数据库管理系统事务对象的属性取值是不一样的,下表给出了事务对象的属性及其描述。,40,连接到数据库,连接到数据库的语句
15、是CONNECT,在使用该语句之前,相应的事务对象必须存在,并且所需的属性也已经赋值。 CONNECT语句的格式: CONNECT USING ; 例 SQLCA.DBMS = ODBC SQLCA.AutoCommit = False SQLCA.DBParm = ConnectString=DSN=stock CONNECT;,41,和事务对象有关的几条语句,断开和数据库的连接 DISCONNECT 事务提交 COMMIT 事务撤消 ROLLBACK,42,事务对象应用举例,/说明SQLServerTrans事务对象 transaction SQLServerTrans /置默认事务对象的
16、属性值 SQLCA.DBMS = ODBC SQLCA.Database = sample SQLCA.Userid = admin SQLCA.dbParm = dsn=sample,DataSource=sample, ConnectString=DSN=sample /使用默认的SQLCA连接到指定数据库 CONNECT; /建立SQLServerTrans事务对象 SQLServerTrans = CREATE TRANSACTION /接下页,43,/置SQLServerTrans事务对象的属性值 SQLServerTrans.DBMS = Sybase SQLServerTrans
17、.database = personnel SQLServerTrans.logid = JPL SQLServerTrans.logPass = jplpass SQLServerTrans.servername = SERVER2 /使用SQLServerTrans连接到Sybase数据库 CONNECT USING SQLServerTrans ; /插入一条记录到SQLCA对应的数据库 INSERT INTO CUSTOMER VALUES(CUST789,BOSTON) ; /插入一条记录到Sybase数据库 INSERT INTO EMPLOYEE VALUES(Peter Smi
18、th,New York) USING SQLServerTrans ; /断开与数据库的连接 DISCONNECT; DISCONNECT USING SQLServerTrans ; /撤消SQLServerTrans事务对象 DESTROY SQLServerTrans,44,建立工作空间 建立目标和应用对象 建立应用程序的主窗口 建立查询职工信息的数据窗口对象 修改建立好的数据窗口对象 在主窗口中添加控件 写事件驱动程序 增加排序功能 关联与条件查询,初步体验PowerBuilder的开发方法,45,基于组件的数据库开发,组件与组件模型 基于组件的开发 有关标准 使用PowerBuild
19、er和EAServer开发组件应用 从EAServer组件访问数据库,46,组件与组件模型,基于组件的开发建立在面向对象的基础之上,面向对象的基本组成单元是类和对象,面向对象开发方法可以实现类一级的封装和重用。而类一级的封装和重用对企业应用还远远不够,它需要更粗粒度的封装,这就是组件。,47,组件与组件模型,48,组件与组件模型,组件模型是组件及其环境所必需的一组要求。组件模型中虽然最重要的是组件自身及其封装;但是从应用组件和开发的角度,我们也非常关心如何定义和约束接口。 组件模型中的接口定义了其他代码实体(可以是应用程序、其他组件及一些容器等)与组件之间的关系。,49,组件模型接口的分类,组
20、件API(应用编程接口):定义了一组应用程序可以用来使用组件服务的接口标准。 设计模式:是一组类、接口及其关系,提供对一般问题分类常用的设计解决方案,应用代码通过提供基于设计模式的更具体的且与应用相关的设计行为来规范设计模式。 组件SPI(服务提供商接口):由专门的组件服务提供商提供,按照某种标准提供完成某种功能的组件和接口,并且可以修改底层服务而不改变应用接口。 组件-容器接口:一种被组件假定的容器环境接口。 容器-组件接口:一种被容器假定的组件接口。,50,组件与组件模型,组件模型接口可能与平台相关、也可能与平台无关等,这些可能会影响到对组件模型的选择。这方面的问题可以概括如下: 语言相关
21、 平台相关 分布式通信协议相关 数据表示相关 通信同步 行为定制,51,基于组件的开发,基于组件的开发(Component-Based Development,CBD)已经成为开发数据库应用的基本技术,组件可以是商用的现成产品,也可以是自己开发的,重要的是整个应用的开发要遵循基于组件的方案和结构。,52,基于组件的开发,基于组件的开发以面向对象技术为基础,所以基于组件开发的许多方法都依赖于UML描述及其相关组件,其开发过程也与面向对象方法类似。,53,基于组件的开发,在需求分析阶段要分析系统的行为以及组件接口,在此阶段要明确组件模型、标准组件接口以及系统外部的组件接口等。 在概要设计阶段要:
22、确定组件模型技术,通过确定组件模型技术可以驱动用于系统设计的技术和工具; 确定组件,根据系统的行为需求和支持的接口与技术定义组件; 组件选择,对一些商用组件和其他项目开发的组件进行适用性评估,以选择合适的组件应用到项目中。,54,基于组件的开发,在详细设计阶段主要对组件进行详细设计和调整,并确定组件实现规范。 在组件实施阶段完成代码的编写和修改,或通过子类来扩展已有的组件代码。 在组件选择、调整和编码之后,需对组件进行单元测试。 在完成单元测试之后则可以进行组件装配,从而形成功能模块,然后对功能模块进行测试。 最后进行系统的测试和部署。,55,有关标准,关于组件模型有许多标准,近几年最具代表性
23、的是用于构建Java企业系统的模型,其中J2EE(Java 2 Enterprise Edition)提供了一种集成的、简化的访问组件和建立组件的方法。除此之外,也有其他一些重要的模型,如对象管理组织(Object Management Group,OMG)和微软公司也定义了很有影响的组件模型和方法。,56,有关标准,小应用程序Applet JavaBean CORBA RMI COM/DCOM Java API/SPI J2EE Web组件 J2EE企业JavaBean CORBA component,57,小应用程序Applet,Java Applet定义了简单的容器-组件和组件-容器接口
24、,使Java代码可以嵌入到Web浏览器中的Applet中运行。,58,JavaBean,JavaBean组件模型定义了编写Java代码的标准模型,对外提供组件属性和事件以及JavaBean容器的接口。容器一般嵌入到一个集成的开发环境中,以便JavaBean组件在设计时使用基于GUI(Graphic User Interface)的工具进行定制。,59,CORBA,通用对象请求代理体系结构(Common Object Request Broker Architecture,CORBA)是由OMG定义的分布式组件模型标准。该方法通过标准协议把从分布式客户机发出的调用请求传送至服务器端的代码,该代码
25、将激活分布式对象的方法。除了标准的组件通信和激活框架之外,CORBA模型还包括一些标准的、更高级的分布式组件服务和功能。,60,RMI,远程方法调用(Remote Method Invocation,RMI)为分布式访问组件定义了一个Java相关的接口模型。RMI容器环境包含了Java平台,并扩展支持使用相同的底层通信协议(如CORBA的标准协议的通信)。,61,COM/DCOM,微软的组件对象模型(Component Object Model,COM)定义了一个与在微软平台上实现的组件交互的标准模型。分布式组件对象模型(DCOM)是COM模型的分布式版本。,62,Java API/SPI,J
26、ava不仅仅是一种语言,各种Java API实际定义了一组标准组件服务,这些服务能够被应用程序使用并访问数据库(JDBC)服务、事务服务(JTS)、消息服务(JMS)等。而且这样的API模块还允许开发人员使用SPI把它们插接到不同的底层服务中。,63,J2EE Web组件,Java Servlet和Java Server page是服务器端的组件,它处理Web请求和生成Web的表示内容。这样的Web组件运行和操作在基于J2EE的Web容器环境内部。,64,J2EE企业JavaBean,企业级JavaBean(EJB)是服务器端的组件模型,它们在EJB容器和服务器内操作,这样的服务器能够为EJB
27、提供一组标准的服务框架,如事务、安全和可伸缩性等。,65,CORBA component,CORBA component是基于CORBA的应用服务器模型,它和EJB模型非常类似。,66,使用PowerBuilder和EAServer开发组件应用,EAServer(Enterprise Application Server)是Sybase公司提供的企业级应用服务器,可以应用于企业级Web、分布式和多层客户/服务器应用的解决方案,EAServer支持Java、JavaBean、CORBA、COM和J2EE等标准组件模型。 PowerBuilder不仅仅是客户端的数据库应用开发工具,它还可以开发EA
28、Server组件。PowerBuilder和EAServer一起提供了一个无缝的开发和提交环境,支持HTML、Java、XML等语言,并且能够访问商用的系统组件。,67,PowerBuilder和EAServer是完全集成的,PowerBuilder应用程序可以充当EAServer服务器的客户;而EAServer服务器的中间层组件也可以包含PowerBuilder的不可见的定制类用户对象。 EAServer可以直接与PowerBuilder的不可见用户对象通信,PowerBuilder的不可见对象也可以与EAServer通信。在PowerBuilder上开发设计的组件能充分利用PowerScr
29、ipt容易使用和适应性好的优点,并且可以使用丰富的PowerBuilder系统对象。,68,PowerBuilder和EAServer是完全集成的,69,EAServer的服务器结构,组件和包 连接缓存 事务支持 实例池 共享组件 装入平衡、失败和高有效性,70,组件和包,EAServer服务器可以为PowerBuilder、Java、C、C+和COM/ActiveX组件提供服务,所谓组件是一个被封装了的类的集合,它包括了在EAServer事务服务器中运行的业务逻辑。组件由一个或多个方法组成,这些方法为EAServer的客户端提供服务。如果客户端要求组件提供服务,则必须先创建组件的一个实例,然
30、后才能调用组件上的方法。 EAServer中有一个包的概念,包是组件的集合,是将应用程序资源分组组织在一起,并作为分布式计算的一个单元。,71,连接缓存,为了优化数据库处理,EAServer提供了对连接缓存的支持。连接缓存允许EAServer组件共享与远程数据库服务器预先分配的连接,避免由于组件的每个实例都创建一个不同的连接而增加开销。通过建立连接缓存,EAServer服务器可以重用对相同数据存储建立的连接。,72,事务支持,在PowerBuilder中开发的组件可以在EAServer事务中共享。当一个组件提供事务支持时,EAServer确保组件的数据库操作作为事务的一部分执行。 多个EASe
31、rver组件可以共享一个单一的EAServer事务;EAServer确保数据库的改变是由共享的事务通过提交和撤消实现的。如果在定义组件时使用了EAServer事务,那么所有的工作都通过组件实现,并且这些组件共享已经发生的事务。,73,实例池,EAServer组件对实例池提供支持。实例池允许EAServer客户重用组件实例,从而避免了由于重复分配组件实例而引起的资源消耗,因而增强了EAServer服务器的性能。,74,共享组件,EAServer对共享组件提供支持,允许客户共享状态信息。共享组件允许多个客户共享相同的组件实例。当程序员插接一个PowerBuilder不可见对象到EAServer时,
32、可以指定该对象为EAServer共享组件。使用共享组件的好处是: 对公共数据提供方便的存取,否则将需要被每个客户连接分开检索; 减少数据存取的次数,允许数据库服务器去做其他的处理。,75,命名服务,EAServer执行CORBA标准CosNaming命名服务,当应用程序中包括多个服务器时,命名服务允许定义本地服务器名代替服务器地址。通过定义初始服务器名再加上包和组件名就可以标识组件。,76,装入平衡、失败和高有效性,EAServer提供对装入平衡、失败和高有效性的支持,这些特征确保进入服务器的客户要求分布在多个EAServer服务器之中,当一个或多个EAServer服务器已经无效时,EASer
33、ver服务仍然有效。 为了实现装入平衡、失败和高有效性,必须创建一个服务器集群(一组运行在不同机器上的EAServer服务器),集群中的服务器共享为客户提供的服务。如果集群中的一个或多个服务器失败或掉线,集群中的其他服务器仍可提供对客户端的服务。,77,EAServer的客户端结构,存取EAServer服务器的PowerBuilder客户有三种主要的组件: 用户接口 Connection(连接)对象 EAServer代理对象,78,用户接口,用户接口是指客户应用程序上包括的所有与业务用户进行交互的窗口和菜单,以及客户应用程序中包含的响应用户的每个动作的程序,用户动作可以是单击命令按扭,或者选择
34、了菜单项,或是在编辑框中输入了数据等,而相应的程序则完成对应的工作。,79,Connection对象,Connection对象负责客户应用程序与EAServer的连接并要求它的服务。Connection对象应该在客户端的程序中实例化,它的属性值包括了PowerBuilder客户与EAServer服务器连接所需要的信息。Connection对象要验证EAServer的主机名和端口号,并且选择一个默认的包。,80,EAServer代理对象,EAServer服务器中的每个组件在客户应用程序中都有一个与之对应的代理对象,在运行期间,代理对象所代理的远程对象可以由客户在本地实例化。只有创建了远程对象的实
35、例,才能对远程对象上的函数进行调用。,81,其他客户端技术,创建兼容CORBA的客户 创建兼容EJB的客户 建立SSL连接,82,从EAServer组件访问数据库,在PowerBuilder下开发的EAServer组件可以使用数据存储(DataStore)对象与数据库进行交互,数据存储对象是不可视的数据窗口控件,除了没有可视属性外,数据存储对象与数据窗口控件具有完全相同的特征和用途。,83,从EAServer组件访问数据库,为了能让客户看到服务器上的被检索数据,必须提供一个可视接口给用户,也就是要在客户端建立一个带有数据窗口控件的窗口。当服务器检索到数据时,客户端的数据窗口就能显示出服务器上的
36、数据存储所检索到的结果集。同样,当用户修改了客户端的数据时,服务器上的数据存储内容要被更新,以反映客户端上的数据窗口控件的当前状态。,84,使用连接缓存(connection caching),为了优化数据库处理,EAServer提供了对连接缓存的支持。连接缓存允许EAServer组件共享预先分配的远程数据库服务器的连接池,以避免由于组件的每个实例都创建不同的连接而增加开销。通过建立连接缓存,EAServer服务器可以重用对相同数据存储建立的连接。,85,实现检索操作,为了使用数据存储实现检索操作,首先必须在程序中建立一个数据存储对象的实例,并为该数据存储对象分配一个数据窗口对象;然后,需要为
37、数据存储设置一个事务对象。一旦完成了这些设置步骤,就可以检索数据到数据存储,并实现各种对检索结果集的处理。,86,数据窗口同步,在传统的客户/服务器应用程序中,数据库修改是由运行在客户端的应用程序完成的,PowerBuilder可以自动的管理数据窗口状态信息。但是在分布式和组件处理中,情况有所不同,因为应用程序组件将客户与服务器分开了,所以需要写程序来保证客户端的数据缓冲区和状态标志与服务器上的数据存储同步。,87,移动数据窗口缓冲区和状态标志,为了从一个数据窗口(或数据存储)提供完整的状态信息到另一个数据窗口,程序中必须包括下列处理: 捕获源数据窗口的当前状态; 将源数据窗口的当前状态应用到
38、目标数据窗口。 当一个数据窗口(或数据存储)发生了变化,为了让另一个数据窗口也随之变化,程序中必须包括下列处理: 捕获源数据窗口的变化; 将源数据窗口的变化传送到目标数据窗口。,88,Web数据库应用开发,Components,Browser or C/S,Components,Client/ServerApplication,Browser,ProductionData,ProductionData,ProductionData,ProductionData,ProductionData,Enterprise JavaBeans, COM, CORBA, PB NVOs,Templates,
39、 Scripts,PageServer,HTML Pages,FileSystem,Very Thin,Thin,Rich,Web Server,Components,TransactionServer,Client,Middle Tier,Data,89,Web数据库应用的一般结构和方法之一,中间件负责管理Web服务器和数据库服务器之间的通信并提供应用程序服务,它能够直接访问数据库或调用外部程序或利用脚本代码来访问数据库,因此它可以提供与数据库相关的动态HTML页面,或执行用户查询,并将查询结果格式化成HTML页面,然后通过Web服务器返回给用户浏览器。,90,Web数据库应用的一般结构和方
40、法之二,通过Web浏览器把应用下载到客户端运行,在客户端直接访问数据库。客户端应用包括:Java Applet、ActiveX、Plug-in等等,其中最典型的就是Java Applet。 Java是一种与平台无关的编程语言,因而具有极强的可移植性。在Java Applet中访问数据库,可以使用JDBC技术,通过JDBC提供的API来实现对分布在网上的不同数据库的各种操作。,91,使用PowerBuilder和EAServer建立Web应用,Power Dynamo简介及工作流程 Web数据窗口 Web Target(Web目标),92,Power Dynamo简介及工作流程,EAServer
41、实际上有两部分组成: Jaguar CTS(Component Transaction Server) Power Dynamo,93,Power Dynamo功能介绍,Power Dynamo负责数据库与Web站点的协调和管理,负责解释Web页面中的数据请求。为此,使用Power Dynamo可以在网页中嵌入相关的命令,当客户端浏览器显示网页或与其交互时,Power Dynamo开始处理这些嵌入的指令,并将从数据库中获得的动态数据嵌入到Web页面中。,94,解释器,Power Dynamo的核心是一个解释器,负责处理嵌入在HTML页面和其他文档中的标记(Tags)指令(如嵌入的SQL语句等)
42、,并将结果嵌入在HTML页面中返回给Web服务器。,95,HTML模板和脚本,Power Dynamo可以处理静态Web页面,还可以处理两种类型的动态页面:HTML模板和Script脚本。,96,在模板中嵌入动态内容,使用Power Dynamo可以在HTML或XML模板中嵌入SQL语句,这使得用户可以通过Web页面灵活的访问数据库。由于支持文本替换和主变量,所以不仅可以嵌入静态的SQL语句,还可以嵌入动态的SQL语句。,97,Power Dynamo工作流程,Power Dynamo页面服务器将结果以HTML格式返回给Web服务器; Web服务器将最终结果返回给客户端浏览器。,Web服务器将请求传送给Power Dynamo; Power Dynamo从模板库中取出相应的HTML模板,处理嵌入在模板中的指令; 根据要求从数据库中提取数据,然后继续处理脚本; 如果有Jaguar CTS组件调用,则完成相应的组件方法调用和执行,执行结果返回给Power Dynamo;,98,Dynamo Script语言简介,Power Dynamo的脚本语言称作Dynamo Script,是一种服务器端的脚本语言,它用于控制从Web服务器传递给客户机浏览器的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年秋季开学高中军训方向变换课件
- 2026年秋季开学大学开学第一课(垃圾分类)课件
- 2026秋部编版五年级上册语文第三单元单元培优卷(B卷)
- 企业数字化转型路径与典型案例深度分析
- 企业从流程中心向数据中心范式转变的路径与影响分析
- 金融转型视角下企业低碳转型的激励与约束机制
- 供应链韧性实践案例研究与总结
- 大语言模型技术栈的能力边界、挑战与演进趋势
- 新质生产力驱动下产业供应链重塑策略研究
- 2026 年老年患者护理质量质控管理实践课件
- 地下人行通道监理实施细则
- 新生儿复苏操作技能考核评分标准(2025 版)中文版 逐项打分 + 合格判定细则
- 山洪灾害预警识别知识
- 2025-2026学年人教版生物必修二全册综合检测练习卷(含解析)
- 2025年【熔化焊接与热切割】作业考试题库(含答案)
- 2026年完整版交管学法减分考试题库及答案
- 客户服务管理员(三级)考试复习题库(浓缩300题)
- 小升初湖北省黄石市阳新县2025年(人教版)数学考试试题 含答案
- 广东高考政治试题及答案2026
- 消防培训机构设备管理制度
- 小区燃气管网课程设计
评论
0/150
提交评论