新客网WWW.XKER.COM:致力做中国最专业的网络学院!
学院: 操作系统 - 网络应用 - 服务器 - 网络安全 - 工具软件 - 办公软件 - Web开发 - 数据库 - 网页设计 - 图形图像 - 媒体动画 - 硬件学堂 - 存储频道 - QQ专区
您的位置:首页 > 软件开发 > 数据库 > Sybase教程 > 正文:细化解析:Sybase存储过程的建立和使用

细化解析:Sybase存储过程的建立和使用

新客网 XKER.COM 2007-10-30 来源: yashi 收藏本文

 

例3.如果要计算当月工资,就必须从工资历史中查出员工距离当前最近的一次技能工资变动的结果:

 

create procedure p_RsGz_JiNeng_Slt 
(@c_GeRenId char(4),@sm_JinE smallmoney output) 
as 
select @sm_JinE=JinE 
from RS_LS_GZ_JiNeng 
where RiQi=(select max(RiQi) 
from RS_LS_GZ_JiNeng 
where GeRenid=@c-GeRenId)/*找出历史记录中距离当前最近的日期*/

调用存储过程p_RsGz_JiNeng_Slt进行查询:

 

declare @GeRenId char(4),@JinE smallmoney 

select @GeRenid="0135"/*设要查询员工的个人代码为"0135"*/ 

select @JinE=0 

execute p_RsGz_JiNeng_slt @c_GeRenId=@GeRenId,
@sm_JinE=@ JinE output

 

 

 

这里,变量 @JinE用来存储过程形参@sm_JinE传回的金额。在调用过程语句中,@sm_JiE = @JinE output中的output不可省略。否则,变量@JinE将得不到形参传回的数值而始终为零(等于初值)。 [page]

例4.查到了个人代码为"0135"员工的技能工资就显示其历史纪录,查不到则显示一条出错信息。

 

create procedure p_RsGz_JiNeng_Rtn 
@c_GeRenId char(4) 
as 
declare @ErrCode smallint 
select @ErrCode=0 
if exists(select* from RS-LS-GZ-JiNeng 
where GeRenid=@c-GeRenId) 
begin 
select * 
from RS_LS_GZ_JiNeng 
whrer GeRen_id=@c_GeRenId 
order by RiQi 
return @ErrCode 
end 
esle 
begin 
select @ErrCode=1 
return @ErrCode 
end

调用存储过程p_RsGz_JiNeng_Rtn:

 

declare @GeRenId char(4),@RtnCode smallint 
select @GeRenId="0135" 
select @RtnCode=0 
execute @RtnCode=p_RsGz_JiNeng_Rtn @c_GeRenId=@GeRenId 
if @RtnCode=1 
print"No this one!"

存储过程p_RsGz_JiNeng_Rtn向调用者返回一个存储在变量@ErrCode里的值,这个值被称为状态值,它向调用者反映存储过程执行的成败状态。在本例中,如果查不到指定员工技能工资的任何记录时,就认为"查无此人",返回出错状态值1。否则,返回成功状态值0。

 

调用过程的批处理语句使用变量@RtnCode存储返回的状态值,一旦检出存储过程p_RsG_ JiNeng_Rtn返回了错误标志(@RtnCode=1),就显示一条信息"No this one!"。 [page]

注释:以上几个例子扼要的介绍了存储过程所常用的几种形式,从中我们已经可以领略到它的编程特色以及使用上的灵活性和方便性。

 

如果细心的话,你可以发现虽然以上几个例子在调用存储过程时都是用SQL的批处理语句实现的,但并不意味着它就是唯一的方法。比如在存储过程中调用存储过程(即所谓过程嵌套)的现象就很常见。另外,在其它Sybase数据库开发系统 (如PowerBuilder)的 script语句中调用Sybase的存储过程也是特别常见的。

共3页: 上一页 [1] [2] [3] 下一页
收藏】 【评论】 【推荐】 【投稿】 【打印】 【关闭
发表评论
要记得去论坛讨论,点击注册新会员匿名评论
评论内容:不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
阅读排行
随机推荐
实用信息推荐