[pb] 如何动态生成数据源为存储过程的数据窗口?整理

oracle 嵌套进参数


string ls_arg 
ls_arg = "100" //测试参数
sqlselect = 'execute EOS.HHQUERY;0 AI_A ='+ls_Arg+'" arguments=(("AI_A", number))'
ls_Syn = sqlca.SyntaxFromSQL ( sqlselect, "", err )

 

--测试 1

oracle 测试成功:
1、一个参数
string num = "20"
sqlselect = 'execute SP_TEST;0 NUM = ' + num + '" arguments=(("NUM", number))' 

2、多个参数
string num = "20", sname = "'受理'"
sqlselect = 'execute SP_TEST;0 NUM = ' + num + ',SNAME = ' + SNAME + '" arguments=(("NUM", number),("SNAME", string))'

 

 

在MSSQL中的方法:

string num="20",sname="受理"
sqlselect = 'execute SP_TEST;1 @num = ' + num + ',@sname = ' + SNAME

--测试 2
CREATE PROCEDURE dbo.get_shortmsg
@mobile char(11),@msg varchar(140)
AS
begin
set nocount on
set rowcount  20
   
if (substring(@mobile,1,3)>='134' and substring(@mobile,1,3)<='139')
        
select *  from   shortmessage_bak
   
else if  (substring(@mobile,1,3)>='130' and substring(@mobile,1,3)<='133')
       
select * from free_mobile
  
set rowcount 0
set nocount off
end

建一个窗口W_MAIN,窗口上只有一个空的DW,一个按钮,一个SLE用于输入第一个参数。
按钮内代码:


string ERRORS, sql_syntax
string presentation_str, dwsyntax_str

sql_syntax
= "execute get_shortmsg '"+sle_1.text+"','第二个参数'"
presentation_str
= "style(type=grid)"
dwsyntax_str
= SQLCA.SyntaxFromSQL(sql_syntax, &
   presentation_str, ERRORS)

IF Len(ERRORS) > 0 THEN
   MessageBox("Caution",
&
   "SyntaxFromSQL caused these errors: "
+ ERRORS)
  
RETURN
END IF

dw_1.
Create( dwsyntax_str, ERRORS)

IF Len(ERRORS) > 0 THEN
   MessageBox("Caution",
&
      "
Create cause these errors: " + ERRORS)
  
RETURN
END IF
dw_1.settransobject(sqlca)
dw_1.retrieve()


 

 

  • 0
    点赞
  • 0
    评论
  • 1
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值