这个存储过程执行不正确解决方案
这个存储过程执行不正确
存储过程如下:
pb调用如下:
数据库里有一条数据满足条件。
结果是:提示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) 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) AS BEGIN 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