数据库

本类阅读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开发
EAServer 新手上路----JaguarCts开发者必读

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


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:至:[email protected]


 




相关文章

相关软件