首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > PB >

这个存储过程执行不正确解决方案

2012-03-12 
这个存储过程执行不正确存储过程如下:SQL codeALTER PROCEDURE DBA.update_ifenddate(IN @ld_nowdate

这个存储过程执行不正确
存储过程如下:

SQL code
ALTER PROCEDURE "DBA"."update_ifenddate"(IN @ld_nowdate DATE)BEGIN   DECLARE @ld_nowdate DATE ;   UPDATE DBA.dangan set ifenddate = 1 WHERE bcjsrq<=@ld_nowdate AND ifenddate = 0;END


pb调用如下:

SQL code
ld_nowdate = date(today() , 'yyyy-mm-dd')declare sp_update_ifenddate procedure for update_ifenddate(ld_nowdate)execute sp_update_ifenddate;if sqlca.sqlcode = 0 then   commit;   messagebox('' , 'ok')else   messagebox('' , sqlca.sqlerrtext)   rollback;       end if


数据库里有一条数据满足条件。
结果是:提示OK,但是查询一下数据库ifenddate的值还是0,请问那里出了问题?

[解决办法]
1, 在
ALTER PROCEDURE "DBA"."update_ifenddate"(IN @ld_nowdate DATE)

BEGIN
DECLARE @ld_nowdate DATE ; --参数里有了 @ld_nowdate ,是不是在这里就不用再定义了?
......

2, 调用处的 
ld_nowdate = date(today() , 'yyyy-mm-dd')

似乎不对。。。
[解决办法]
SQL code
ALTER PROCEDURE "DBA"."update_ifenddate"(IN @ld_nowdate DATE)ASBEGIN   UPDATE DBA.dangan set ifenddate = 1 WHERE bcjsrq<=@ld_nowdate AND ifenddate = 0;END
[解决办法]
存储过程如下:
SQL code
ALTER PROCEDURE "DBA"."update_ifenddate"(IN @ld_nowdate DATE)BEGIN   --DECLARE @ld_nowdate DATE ;   UPDATE DBA.dangan set ifenddate = 1 WHERE bcjsrq<=@ld_nowdate AND ifenddate = 0;END 

热点排行