数据库

本类阅读TOP10

·SQL语句导入导出大全
·SQL Server日期计算
·SQL语句导入导出大全
·SQL to Excel 的应用
·Oracle中password file的作用及说明
·MS SQLServer OLEDB分布式事务无法启动的一般解决方案
·sqlserver2000数据库置疑的解决方法
·一个比较实用的大数据量分页存储过程
·如何在正运行 SQL Server 7.0 的服务器之间传输登录和密码
·SQL中两台服务器间使用连接服务器

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
PB7.0中实现Jaguar GTS组件开发

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

PB7.0中实现Jaguar GTS组件开发


广州金宇恒科技有限公司 陈纪山
01-6-25 下午 05:42:09


PB7.0 与Jaguar CTS(组件事务服务器) 做到了紧密集成,只需要编写少量代码,就可以建立基于Jaguar CTS 的组件,同时Jaguar CTS本身内置PB虚拟机,使用PB7.0编写的组件可以直接与Jaguar CTS进行高效通信。这样PB组件通过Jaguar CTS与后台数据库建立连接,方便地实现基于三层体系结构的开发。
建立Jaguar 组件
在PB中有三种方法可以建立Jaguar组件:
1、Start Wizard:建立一个新的应用、新的用户对象和新的工程;
2、Object Wizard:在已有的应用的基础上建立一个新的用户对象和工程;
3、Project Wizard:从已有的用户对象中生成一个Jaguar组件。
你可以根据需要选择以上三种方法之一来建立Jaguar组件。建立Jaguar组件一般有如下四步:
1、使用Start Wizard(或者Object Wizard、Project Wizard)来建立一个新的应用、新的用户对象和新的工程;
2、为用户对象加入方法、事件和实例变量;
3、测试组件;
4、发布组件至Jaguar CTS。
建立Jaguar客户端应用
为了实现客户端与Jaguar组件的通信,需按如下步骤建立Jaguar客户端应用:
1、使用Jaguar Connection Object Wizard建立一个连接对象;
2、使用Jaguar Proxy Wizard来建立一个工程,使用该工程产生代理对象;
3、建立窗口、菜单、脚本来做一个客户端图形用户界面;
4、编写适当的代码来创建Jaguar组件实例并且访问它的方法(通过代理对象);
5、测试客户端应用;
6、发布客户端应用。
实 例
本实例通过PB7.0建立一个Jaguar CTS组件,然后发布至Jaguar CTS服务器,该服务器通过ODBC数据源(本例数据源名为EAS Demo DB V3)与后台数据库(本例使用Sybase Adaptive Anywhere数据库,数据库名为:EASDemoDB.db) 相连,客户端代理程序通过Jaguar CTS组件对后台数据库进行访问,比如查询employee表中的雇员情况等,从而实现一个典型的PB三层体系结构应用。具体做法如下:
1.建立Jaguar CTS组件
启动PB7.0,选择File-->New,弹出一个对话框,选择Start Wizard页,双击启动Jaguar Componet图标,在向导的指引下,可以一步一步生成一个新的应用、组件、工程,在此分别命名为jag_app、n_jag_cmp、p_jag_prj。
打开Library画笔,打开jag_app所在的库文件,双击打开 n_jag_cmp用户对象,在Declare栏声明如下实例变量:
protected:
DataStore ids_emp //声明一个不可视的数据存储对象
在n_jag_cmp用户对象的Constructor事件中,建立数据库连接,代码如下:
// Profile EAS Demo DB V3
SQLCA.DBMS = “ODBC"
SQLCA.Database = “EAS Demo DB V3"
SQLCA.AutoCommit = False
SQLCA.DBParm = “ConnectString=
‘DSN=EAS Demo DB V3;UID=dba;PWD=sql'"
//
CONNECT USING SQLCA;
//创建数据存储对象,并作必要设置
ids_emp=Create DataStore
ids_emp.DataObject=“d_emp"
ids_emp.SetTransObject(SQLCA)
在n_jag_cmp用户对象的Destructor事件中,做如下清理工作来释放资源:
Destroy ids_emp
DISCONNECT USING SQLCA;
为n_jag_cmp用户对象增加一个函数uf_employee,该函数访问类型为Public,返回值为blob类型,无参数,函数体如下:
blob lblb_data
ids_emp.Retrieve()
ids_emp.GetFullState(lblb_data)
Return lblb_data
创建一数据窗口对象,名为:d_emp,该数据窗口显示风格为Grid,语法如下:
SELECT “employee".“emp_id",
“employee".“emp_fname",
“employee".“emp_lname",
“employee".“birth_date",
“employee".“salary",
“employee".“sex"
FROM “employee"
关闭除了Library之外的所有画笔,双击p_jag_prj工程对象打开工程画笔,点击快捷工具栏的Build图标,编译并将该组件发布至指定的Jaguar CTS 服务器。
2.建立客户端应用
选择File-->New, 弹出一个对话框,双击Start Wizard 页的Application图标,创建一个新的PBL库和一个应用对象,PBL库名为:Jag_client.pbl,应用对象名称为:Jag_client_app。
选择File-->New, 弹出一个对话框,双击Object页的 Connection Object Wizard图标,创建一个连接对象,连接对象名称为jag_connection,注意在 Specify Connectivity画面选择连接选项时务必选择Requires Jaguar Connection一项。指定 Jaguar CTS 服务器所在的机器名,缺省的端口为9000,缺省的登录ID为jagadmin。选择相应包的名称(即建立Jaguar CTS组件时所指定的包的名称)。按照向导指示完成余下的步骤。
选择File-->New, 弹出一个对话框,双击Project页的Jaguar Proxy Wizard图标创建一个代理工程对象,名称为p_jag_client_prg,按上述同样的方法指定Jaguar CTS服务器和包的参数。
创建完毕后,双击p_jag_client_prg对象,打开工程画笔,点击快捷工具栏的Build图标,联编p_jag_client_prg对象。这时你就会发现在jag_client.pbl 中多了一个n_jag_cmp代理对象。
选择File-->New, 弹出一个对话框,双击Object页的 Window图标,创建一个窗口对象,对象名称为:w_proxy,保存该对象。
在w_proxy中增加如下控件:一个数据窗口控件,控件名为:dw_employee,一个按钮控件,控件名为cb_retrieve,文本为:提取数据。
在w_proxy的DECLARE 栏位声明一个连接实例和一个组件实例,代码如下:
jag_connection my_conn
n_jag_cmp my_comp
在w_proxy的open事件中实例化连接对象,并连接至Jaguar CTS,代码如下:
my_conn = create jag_connection
my_conn.ConnectToServer()
在w_proxy的close事件中断开连接并清理连接对象,代码如下:
my_conn.DisconnectServer()
destroy my_conn
在cb_retrieve按钮的clicked事件中加入如下代码:
blob lblb_data
If Not Isvalid(my_comp) Then
my_conn.CreateInstance(my_comp)
//创建组件实例
End If
lblb_data=my_comp.uf_employee()
//调用组件的方法
dw_employee.SetFullState(lblb_data)
//将所需的数据展示于数据窗口中
最后编译并运行客户端程序,会得到如下运行结果:
本实例在Windows NT4.0(sp4)、Adaptive Server Anywhere6.0、Jaguar CTS3.0、PB7.0下运行通过。



相关文章

相关软件