EAServer 新手上路----JaguarCts开发者必读

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 ecurity 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
à TARGET---- à NEW----EAServer Component 开始向导
3
Implement New à Next- à 应用名、库文件存放 - à Next- à Next- à PBObjectName(n_cst_base) à InterFace--EAServer à Component Name--EAServer Pakeage à Profile-- Instance à Component Type(stadard component)-- à Name( 组件以包为单位,新增一个包或选一个存在的包 )-- Transaction Supported Option(Not à Pooling Options(Supported)-- Other à Interface Options(Next)-- à Supported)-- Finish à Next-- à Next-- à Project(Next)-- à Options( 全选 )--
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
生成组件代理对象
à PROJECT---- à NEW--EAServer Proxy Wizard 一直 NEXT ,值得注意的是出现一个 TreeView 时、让你选一个包(即在 3 中创建的包),下一步是选一个代理库(可以选存在的 PBL ,也可以新增一个 PBL ), NEXT 后是 Deployment Actions, 要选三(代理对象名 = 包名 + 组件名)
8
若不出意外,代理对象就生成了。
B
、客户端:
1
新建一个应用。
2
新建一个连接对象
Connection Object Wizard
其中值得注意的是 Connectivity à PBObject-- à NEW-- 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

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值