1 / 7
文档名称:

如何在PB脚本当中获取存储过程的返回值.doc

格式:doc   页数:7页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

如何在PB脚本当中获取存储过程的返回值.doc

上传人:xxj16588 2016/5/2 文件大小:0 KB

下载得到文件列表

如何在PB脚本当中获取存储过程的返回值.doc

文档介绍

文档介绍:如何在 PB 脚本当中获取存储过程的返回值本文拟以 SYBASE ASE 和 数据库为例,说明如何在 PB 脚本当中获取存储过程的返回值。作为一个存储过程, 其输出的结果数据可能包括三类: SELECT 结果集、 RETURN 结果、 OUTPUT 参数。尽管输出方式众多,但 PB 脚本仅仅借助简单的 FETCH … INTO …语句即可全部获取这些输出数据,具体方式如下: (一)在 SYBASE ASE 和 数据库当中创建一个存储过程 deptroster ,其有一个输入参数***@deptno 、两个输出参数***@totsal 和***@avgsal 、一个 RETURN 值***@number_of_emps 以及包含职员姓名和工资的 SELECT 结果集,可见除了输入参数***@deptno 外,其他均为输出数据,我们需要在 PB 脚本中获取,具体代码如下: CREATE PROCEDURE deptroster ***@deptno integer, ***@totsal double precision output, ***@avgsal double precision output AS DECLARE ***@number_of_emps integer SELECT emp_fname, emp_lname, salary FROM employee WHERE dept_id = ***@deptno SELECT ***@totsal = sum(salary), ***@avgsal = avg(salary), ***@number_of_emps = COUNT(*) FROM employee WHERE dept_id = ***@deptno RETURN ***@number_of_emps; (二) PB 脚本当中我们需要捕获 SELECT 结果集、 RETURN 值和两个输出参数,其输出顺序也是按照“ SELECT 结果集、 RETURN 值、输出参数”顺序输出,具体代码如下: integer fetchcount =0 long lDeptno, rc string fname, lname double dSalary, dTotSal, dAvgSal lDeptno = 100 // 此处声明存储过程名称 DECLARE deptproc PROCEDURE FOR ***@rc = ***@deptno = :lDeptno, ***@totsal =0 output, ***@avgsal =0 output USING SQLCA; // 此处开始执行存储过程 EXECUTE deptproc; // 判断执行结果 CHOOSE CASE CASE 0 // 如果返回 0 则表示执行成功, 至少存在一个 SELECT 结果集// 借助 LOOP 循环开始捕获这个 SELECT 结果集 DO FETCH deptproc INTO :fname, :lname, :dSalary; CHOOSE CASE CASE 0 fetchcount++ CASE 100 MessageBox ("End of Result Set", & string (fetchcount) " row