再问存储过程问题

taile_tao 2002-03-01 09:05:54
create procedure dba.gongjijin(@yf_salary decimal(5,2),@gongjijin decimal(4,2) output)
as
begin
select @gongjijin=@yf_salary*.1
end;

脚本:
int ls_code
decimal ld_tempout
DECLARE gongjijin PROCEDURE FOR proc_gongjijin
@yingfa=10000,@gongjijin=:ld_tempout using sqlca;

sqlca.autocommit = true
execute gongjijin;
if sqlca.sqlcode =0 then
messagebox("info","ok")
fetch gongjijin into :ld_tempout;
close gongjijin;
else
ls_code=sqlca.sqlcode
end if
sqlca.autocommit =false
st_2.text=string(ld_tempout)
调试时ls_code=-1,st_2.text=0应该=1000.我看不出哪里有错呀!帮帮忙,指点指点,不会忘记加分的。
...全文
8 点赞 收藏 9
写回复
9 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
yjs_lh 2002-03-02
你把存储过程的两个Decimal改大一些试试.
比如改成Decimal(10,2)
回复
taile_tao 2002-03-02
taile_tao@163.COM
TO:yjs_lh还不行。
回复
hydhyd 2002-03-01
我以前会遇过该问题,而且我的问题比你还复杂,你告诉我e_mail,我发邮件给你
回复
taile_tao 2002-03-01
不行,sqlca.swlcode=-1
回复
hydhyd 2002-03-01
请将if ...end if 代码段换成以下代码:
do while sqlca.sqlcode=0
fetch gongjijin into :ld_tempout;
loop
close gongjijin;
肯定行。
回复
taile_tao 2002-03-01
这个问题怎么解决呀!
回复
taile_tao 2002-03-01
甜甜你真好,这个贴子前几天贴出了,没有人回复,送你20分!
回复
taile_tao 2002-03-01
刚调试完,值是:SQLSTATE = 22003
[Sybase][ODBC Driver][Adaptive Server Anywhere]Numeric value out of range: Value 10000 out of range for destination
回复
tiantianpb 2002-03-01
看看sqlca.sqlerrtext的值是什么
回复
发帖
非技术版
创建于2007-09-28

379

社区成员

PowerBuilder 非技术版
申请成为版主
帖子事件
创建了帖子
2002-03-01 09:05
社区公告
暂无公告