再问存储过程问题

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.我看不出哪里有错呀!帮帮忙,指点指点,不会忘记加分的。
...全文
60 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
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的值是什么

400

社区成员

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

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