通过复杂的代码形成业务数据并显示的思路 游标 存储过程
来源:互联网 发布:最好的电子书格式 知乎 编辑:程序博客网 时间:2024/04/28 04:03
一般我们在度量快速开发平台中,显示一系列数据,可以通过建立业务表,然后在窗体的网格部件上显示。我们日常基本都是这样来做。
如果有比较复杂的业务显示数据,比如要根据不同的条件,查询出不同表中的数据,然后组合成一整块数据想显示在网格部件上。
也就是说,如果无法直接写业务表来实现复杂查询的业务,我们如何来实现呢。
针对这类业务,度量快速开发平台中一般有两种思路才实现。
1、通过平台脚本实现动态的SQL,并通过网格的刷新DataTable实现
示例:
在窗体的加载事件中:
dim sql=""
if 下拉选项1.Value="部门" then
sql="select dept_id,dept_name from sa_dept_dict"
else if 下拉选项1.Value="人员" then
sql="select id,user_name from sa_staff_info"
else
sql="select id,user_name from "+其他表.Value
end if
网格部件1.DataTable=ExecuteSelect(sql)
网格部件1.RefreshDataByDataTable()
2、通过数据库存储过程返回游标方式实现
下面展示一个在oracle存储过程中写复杂的代码形成SQL语句,然后查询出结果集显示到网格部件中。
create or replace procedure GET_RETCURSOR_PRO
(IN_TABLENAME in VARCHAR2,
RET_CURSOR out SYS_REFCURSOR)
as
p_sql varchar2(4000);
begin
p_sql:='select * from '||IN_TABLENAME;
open RET_CURSOR for p_sql;
end GET_RETCURSOR_PRO;
在加载事件中:
dim sp=CreateProcedure("default","GET_RETCURSOR_PRO")
'AddInputParam("参数名称",参数枚举,参数值) 添加存储过程输入参数
'参数枚举:数字(13),日期(6),字符(22)
sp.AddInputParam("IN_TABLENAME ",22,"SA_DEPT_DICT")
'AddOutputParam("参数名称",参数枚举,内容长度) 添加存储过程输出参数
'参数枚举:数字(13),日期(6),字符(22),游标(5)
sp.AddOutputParam("RET_CURSOR",5,0)
'Execute 执行存储过程,传入参数指示是否提交事务(True表示提交事务,)
sp.Execute(false)
'GetOutPraramValue 获取存储过程输出参数的值
dim dt=sp.GetOutPraramValue("RET_CURSOR")
网格部件1.DataTable = dt
网格部件1.RefreshDataByDataTable()
SQLserver的存储过程作为业务表使用方法:
如果有比较复杂的业务显示数据,比如要根据不同的条件,查询出不同表中的数据,然后组合成一整块数据想显示在网格部件上。
也就是说,如果无法直接写业务表来实现复杂查询的业务,我们如何来实现呢。
针对这类业务,度量快速开发平台中一般有两种思路才实现。
1、通过平台脚本实现动态的SQL,并通过网格的刷新DataTable实现
示例:
在窗体的加载事件中:
dim sql=""
if 下拉选项1.Value="部门" then
sql="select dept_id,dept_name from sa_dept_dict"
else if 下拉选项1.Value="人员" then
sql="select id,user_name from sa_staff_info"
else
sql="select id,user_name from "+其他表.Value
end if
网格部件1.DataTable=ExecuteSelect(sql)
网格部件1.RefreshDataByDataTable()
2、通过数据库存储过程返回游标方式实现
下面展示一个在oracle存储过程中写复杂的代码形成SQL语句,然后查询出结果集显示到网格部件中。
create or replace procedure GET_RETCURSOR_PRO
(IN_TABLENAME in VARCHAR2,
RET_CURSOR out SYS_REFCURSOR)
as
p_sql varchar2(4000);
begin
p_sql:='select * from '||IN_TABLENAME;
open RET_CURSOR for p_sql;
end GET_RETCURSOR_PRO;
在加载事件中:
dim sp=CreateProcedure("default","GET_RETCURSOR_PRO")
'AddInputParam("参数名称",参数枚举,参数值) 添加存储过程输入参数
'参数枚举:数字(13),日期(6),字符(22)
sp.AddInputParam("IN_TABLENAME ",22,"SA_DEPT_DICT")
'AddOutputParam("参数名称",参数枚举,内容长度) 添加存储过程输出参数
'参数枚举:数字(13),日期(6),字符(22),游标(5)
sp.AddOutputParam("RET_CURSOR",5,0)
'Execute 执行存储过程,传入参数指示是否提交事务(True表示提交事务,)
sp.Execute(false)
'GetOutPraramValue 获取存储过程输出参数的值
dim dt=sp.GetOutPraramValue("RET_CURSOR")
网格部件1.DataTable = dt
网格部件1.RefreshDataByDataTable()
SQLserver的存储过程作为业务表使用方法:
只读业务表的另类写法(业务表数据由存储过程来)
原文地址:http://bbs.delit.cn/thread-876-1-1.html
转载请注明出处:
撰写人:度量科技www.delit.cn
0 0
- 通过复杂的代码形成业务数据并显示的思路 游标 存储过程
- 一个蛮复杂的存储过程,游标,循环,临时表
- 通过 WPF 强制执行复杂的业务数据规则
- 通过游标读取oracle存储过程返回的结果集
- java通过prepareCall调用oracle返回游标的存储过程
- 业务比较复杂的情况下使用游标
- 带游标的存储过程
- 存储过程:游标的写法
- 内嵌双游标的存储过程
- 带游标的存储过程
- 存储过程游标的练习
- 存储过程游标的详解
- oracle 采用游标循环插入数据的存储过程
- spring jdbctemplate或jdbc调用返回游标或复杂数据类型的存储过程
- 复杂的存储过程例子
- 复杂的 oracle 存储过程和触发器复制数据
- spring SimpleJdbcCall 调用存储过程 通过游标提取数据!
- 复杂检索数据并分页显示的处理方法
- CSS的overflow属性及清除浮动
- eclipse配置背景颜色以及字体
- 使用sprikit构建关卡1 4-13 人物通过轻扫可以实现左右移动上跳下蹲(复杂的有待构建)
- HTML5 参考手册(事件属性)
- Qt5 VS2013中文乱码解决
- 通过复杂的代码形成业务数据并显示的思路 游标 存储过程
- VS2013中CString转换到string
- Eclipse使用技巧 - 4. Eclipse自动注释文件的导出和导入
- 数据结构图的运算(深度优先)
- Android 更改系统DataPicker分割线颜色和距离
- 移除ArrayList集合中重复的元素
- c++作业3
- SpringMVC @RequestBody接收Json对象字符串
- height、clientHeight、scrollHeight、offsetHeight的区别,和获取scrollTop的方法