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

请教怎么传递参数给存储过程

2012-02-22 
请问如何传递参数给存储过程?数据库是SQL ANYWHERE 12 开发版存储过程代码如下:SQL codeALTER PROCEDURE

请问如何传递参数给存储过程?
数据库是SQL ANYWHERE 12 开发版

存储过程代码如下:

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


POWERBUILDER 中的执行代码如下:

C/C++ code
ld_nowdate = date(today() , 'yyyy-mm-dd')declare sp_update_ifenddate procedure for update_ifenddate    @ld_nowdate = :ld_nowdate;   execute sp_update_ifenddate;   if sqlca.sqlcode = 0 then        commit;   else      messagebox('错误信息:' , sqlca.sqlerrtext)      rollback;          end if


结果MESSAGEBOX的错误信息是:
[sql anywhere] 存储过程update_ifenddate未找到参数'@ld_nowdate'
请问:SQL ANYWHERE12 如何传递这个@ld_nowdate , 谢谢!

[解决办法]
SQL code
ALTER PROCEDURE "DBA"."update_ifenddate"(IN   @ld_nowdate DATE )BEGIN   UPDATE DBA.dangan set ifenddate = 1 WHERE bcjsrq=@ld_nowdate;END
[解决办法]
ALTER PROCEDURE "DBA"."update_ifenddate"()

你的存储过程后面没有定义参数?

ALTER PROCEDURE "DBA"."update_ifenddate" @ld_nowdate date


SQL code
B. 使用带有参数的简单过程下面的存储过程从四个表的联接中只返回指定的作者(提供了姓名)、出版的书籍以及出版社。该存储过程接受与传递的参数精确匹配的值。USE pubsIF EXISTS (SELECT name FROM sysobjects          WHERE name = 'au_info' AND type = 'P')   DROP PROCEDURE au_infoGOUSE pubsGOCREATE PROCEDURE au_info    @lastname varchar(40),    @firstname varchar(20) AS SELECT au_lname, au_fname, title, pub_name   FROM authors a INNER JOIN titleauthor ta      ON a.au_id = ta.au_id INNER JOIN titles t      ON t.title_id = ta.title_id INNER JOIN publishers p      ON t.pub_id = p.pub_id   WHERE  au_fname = @firstname      AND au_lname = @lastnameGO 

热点排行