1 返回的参数及接纳的变量
乐创者对普通查询方式的存储过程参数的规定:
1)MySQL或SQL Server或db2:
√ 返回一个数值参数(必须)
用系统变量“procOutResultType”进行接纳,所代表的含义是执行是否成功,0的含义是成功,1的含义是失败。
√ 返回一个字符串参数(可选)
用系统变量“procOutResultMsg”进行接纳,所代表的含义是“备注描述”。
√ 返回另一个字符串参数(可选)
用系统变量“procOutErrorCode”进行接纳,所代表的含义是“错误代码”。
2)Oracle:
除了MySQL所需要的上述3个返回参数外,还有一个参数:
√ 返回一个游标参数(必须)
用系统变量“procOutData”进行接纳,所代表的含义是记录集的游标。
2 存储过程 get_orderList
以存储过程 get_orderList 为例,如下:
CREATE PROCEDURE `get_orderList`(IN custId varchar(50),IN employId INT(10),OUT stateMark INT(10))
BEGIN
SELECT
a.订单ID,b.公司名称,CONCAT(C.姓氏, C.名字, c.尊称) 雇员,a.到货日期,a.发货日期, a.订购日期, a.运货费 + d.价格 AS 总价
FROM
订单 a
LEFT JOIN 雇员 c ON a.雇员ID = c.雇员ID
LEFT JOIN 客户 b ON a.客户ID = b.客户ID
LEFT JOIN (
SELECT
a.订单ID,a.单价 * a.数量 * (1 - a.折扣) as 价格
FROM
订单明细 a
GROUP BY
a.订单ID
) d ON a.订单ID = d.订单ID
WHERE IF (custID = ' ',1 = 1, a.客户ID = custId)
AND IF (employId = 0,1 = 1, a.雇员ID = employId);
SET stateMark=0; -- 这里表示存储过程执行正常
END
定义了custId、employId两个输入参数和stateMark一个返回参数。
其中:
custId、employId:是两个业务输入参数,接收调用执行时传递的业务参数。
stateMark返回参数是告知乐创者系统存储过程执行成功与否。
3 定义数据视图
创建一个存储过程数据视图后,在出现的对话框中选择 get_orderList 存储过程,对话框配置界面如下图:
值类型,包括:常量、自定义变量、系统变量。
常量:顾名思义,即固定值,“值”的内容将直接原样传递给“参数名”所对应的存储过程参数。
自定义变量:相对于常量来说,它是一个变量,且是自定义的,实现与后续步骤接收参数值,变量名即为“值”里大括号里的名称,注意:大括号里竖线(|)左边是变量名,右边是默认值。
系统变量:也是变量,但是系统预先定义的,只要选择对应上即可。
proceOutResultType:存储过程执行结果,0:成功,非0:失败
4 使用
这样就实现了一个存储过程数据视图的定义,后续应用到报表、表单、大屏模板跟普通SQL视图类似。
最后编辑:林 更新时间:2025-04-24 11:27
