散分,谁可以提供Sybase Jaguar CTS的资料呀?

tanye 2001-07-31 01:04:40
我手上有一本电子工业出版社出版的Sybase Jaguar CTS 书,
可翻来翻去就是看不懂,
书写的条例很不好,
谁有资料阿
...全文
192 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
ExitWindows 2001-08-01
  • 打赏
  • 举报
回复
up
tempest 2001-08-01
  • 打赏
  • 举报
回复
向大家学习。
ExitWindows 2001-07-31
  • 打赏
  • 举报
回复
up
咖啡 2001-07-31
  • 打赏
  • 举报
回复
学习!
powered 2001-07-31
  • 打赏
  • 举报
回复
向大家学习。
am2000 2001-07-31
  • 打赏
  • 举报
回复
http://www.csdn.net/develop/library/datebase/PowerBuilder/9260.shtm
am2000 2001-07-31
  • 打赏
  • 举报
回复
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下运行通过。
am2000 2001-07-31
  • 打赏
  • 举报
回复

sybase enterprise application server新手上路

sybase easerver的文章也有一些,很少提及到开发中的一些细节问题。本人从事jaguarcts开发不久,遇到了许多细节问题,想来刚从事jaguarcts开发者也会遇上,以做参考,另则心中还存有许多问题,故撰此文,起抛砖引玉之效,望jaguarcts高手能释疑,深表感谢。

一、系统配置部分:
1、 运行环境:
win2000 server版,sp2补丁,p3850cpu,pb8.0beta+easerver3.6.1。
2、 运行环境安装注意事项:
在开发环境中jaguarcts服务器不要安装成nt服务,因为开发中经常修改jaguarcts组件,会出现“object can‘t save”的错误,若不是nt服务,用jaguar server(debug)。出现此类错误后重启动j aguar server(debug)即可。若安装成nt服务可用以下指令删除:
serverstart servicename -remove (serivename是nt服务中jaguar的服务名)
win2000 server版一定要打补丁,其实sp1也可,否则无法生成代理(proxy)。
3、 启动jaguar管理器(图(一))
(a) jaguarmagager菜单tool\connect\ jaguar manager。

(b) 点profile manager可以新增一个profile。
(c) 在user name 中输入jagadmin(系统)
(d) password默认为空。
(e) host name可以是localhost。(如果你有一定的经验,它可以改为你的机器名,但在connect成功后要进去修改listener中各端口的主机名。)
4、 启动安全管理器(图(二))
(a) jaguarmanager菜单tool\connect\security manager。
(b) pin默认密码是“sybase”
5、 修改jagadmin的密码
(a) 当3连接成功后,在jaguarmanager中双击servers,显示当前所有服务,选一服务后击右键,在右键菜单中选server property打开属性面板。
(b) 在属性面板中选security改密码。

6、 管理连接缓冲
(a) 在jaguarmanager中双击servers,在列表中选一个server。
(b) 选install connection caches
(c) 右键,在弹出的菜单上选“create and install a new connection cache”
(d) 在弹出的窗口中输入connection cache名。
(e) 确定后就进入了connection cache配置面板。
(f) 本文以配置sqlserver为例。在general选项卡中配置:server name 为sqlserver的服务名。user name为登录sqlserver的用户id,输入password。在driver选项卡中选odbc,dll or class name 为odbc32.dll。ping一下试试。
(g) 若ping通不过,你就得看一下本文前面(3)提到的hostname你输入的是什么,若localhost就不行,改为你的机器名。

二、开发应用部分
a、服务端:
1、 新建easerver profile如下图。server name即计算机名。port number为9000,login name为jagadmin。
2、 在new----target----easerver component开始向导
3、 next-next-应用名、库文件存放-next-implement new interface--pbobjectname(n_cst_base)easerver component name--easerver profile--pakeage name(组件以包为单位,新增一个包或选一个存在的包)--component type(stadard component)--instance pooling options(supported)--transaction supported option(not supported)--interface options(next)--other options(全选)--project(next)--next--next--finish
4、 打开刚创建的组件n_cst_base,在constructor事件中:
sqlca.dbms = "mss microsoft sql server 6.x"
sqlca.database = "jaguar_2001"
sqlca.servername = "jaguarcts"
sqlca.logid = "sa"
sqlca.autocommit = false
sqlca.dbparm = ""
connect using sqlca ;
if sqlca.sqlcode = -1 then
messagebox(“system”,"数据库连接失败!"+sqlca.sqlerrtext)
end if
5、 在n_cst_base的destructor事件中:
disconnect using sqlca ;
6、 在n_cst_basek中新增一个对象函数:
of_user_login(string as_userid,string as_password) return integer
//
integer li_return
select count(*) into :li_return from jag001 where jag0101 = : as_userid and jag0102 = : as_password ;
return li_return
jag001表的字段:jag0101(varchar(20))—jag0102(varchar(20))
7、 生成组件代理对象
new--project----easerver proxy wizard一直next,值得注意的是出现一个treeview时、让你选一个包(即在3中创建的包),下一步是选一个代理库(可以选存在的pbl,也可以新增一个pbl),next后是deployment actions,要选三(代理对象名=包名+组件名)
8、 若不出意外,代理对象就生成了。
b、客户端:
1、 新建一个应用。
2、 新建一个连接对象
new--pbobject--connection object wizard其中值得注意的是connectivity options(requires easerver connection);pakage name即3中创建的包。connection object名可以默认,也可以自已输入;resource of connect information可以任选一种。
3、 在新应用的open事件:
n_cst_connect inv_connect_srv //2创建的连接对象声明
jaguar_2001_n_cst_base inv_login_srv //代理对象声明
integer li_return

inv_connect_srv = create n_cst_connect
li_return = inv_connect_srv.connecttoserver( )

try //创建代理对象inv_login_srv
li_return =
inv_connect_srv.createinstance(inv_login_srv,"jaguar_2001/n_cst_base")
catch (cts_pbuserexception uae)
li_return = 999
end try

if li_return <> 0 then
messagebox("error info", "errorcode= " + string(inv_connect_srv.errcode) + "~nerrtext= " + inv_connect_srv.errtext)
end if

try // 进行登录,表中有一行数据(xzh2000,000000)
li_return = inv_login_srv.of_user_logon(‘xzh2000’,’000000’)
catch (cts_pbuserexception uae1)
li_return = 999
end try

if li_return = 1 then
messagebox(“system”,”ok”)
else
messagebox(“system”,”cancel”)
end if

三 说明:
本文是在jaguar manage(debug)启动情况下通过,如有疑问,请发email:至:xzh2000@fm365.com
wangsw 2001-07-31
  • 打赏
  • 举报
回复
??
am2000 2001-07-31
  • 打赏
  • 举报
回复
to cl007(cl007):服务是有点,但还是不能访问。可能过期了吧,我用的是试用版,今天把机子重格了。等会我再试试看。
nthb2001 2001-07-31
  • 打赏
  • 举报
回复
没买~~~
hzslx 2001-07-31
  • 打赏
  • 举报
回复
gz
cl007 2001-07-31
  • 打赏
  • 举报
回复
我有几本书,不过现在没时间写帖子啊。你说咋办?

还有am2000你说JTS起不来,你装的是2000吗?控制面板中的服务,你去看看,看能不能起来。
am2000 2001-07-31
  • 打赏
  • 举报
回复
sybase的帮助写得很详细了啊。
我收集了一点点资料。不过太少了。
ExitWindows 2001-07-31
  • 打赏
  • 举报
回复
up

2,596

社区成员

发帖
与我相关
我的任务
社区描述
Sybase相关技术讨论区
社区管理员
  • Sybase社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧