帆软存储过程传参

--存储过程

select   *  from  #dgsj 

WHERE 1=1 and  (区域编号  in (select  bh from   A_M5_QY   where  code=帆软账号 )) 

-- 账号为admin 或者 12345  展示全部 为区域账号展示本区域有

可以在 where  条件当中直接做判断的嘛

FineReport wangjiaojiao 发布于 2024-10-25 09:01 (编辑于 2024-10-25 09:07)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共1回答
最佳回答
1
CD20160914Lv8专家互助
发布于2024-10-25 09:02(编辑于 2024-10-25 09:10)

你的存储过程,直接判断一下接收参数。如果是admin与12345的时候,就查询全表了。你在存储过程修改了

CREATE PROCEDURE GetTestData

    @Param INT

AS

BEGIN

    SET NOCOUNT ON;

    IF @Param = '12345' OR @Param = 'admin'

    BEGIN

        -- 如果参数为12345与admin,查询整个表

        SELECT * FROM test;

    END

    ELSE

    BEGIN

        -- 否则,使用参数作为查询条件

        SELECT * FROM test WHERE SomeColumn = @Param;

    END

END;

GO

调用存储的方式参考

var mycode=this.options.form.getWidgetByName('mycode').getValue(); //获取参数

var mydate=this.options.form.getWidgetByName('mydate').getValue(); 

var STATUS=this.options.form.getWidgetByName('STATUS').getValue(); 

var sql="exec test_aa_cc "+mycode+","+mydate+","+STATUS;

var res=FR.remoteEvaluate('=sql("dbbasedata","'+sql+'",1,1)');

oracel的话用这种

方式二:

var mycode=this.options.form.getWidgetByName('mycode').getValue(); //获取参数

var mydate=this.options.form.getWidgetByName('mydate').getValue(); 

var STATUS=this.options.form.getWidgetByName('STATUS').getValue(); 

var sql="call test_aa_cc ('"+mycode+"','"+mydate+"','"+STATUS+"')";

var res=FR.remoteEvaluate('=sql("dbbasedata","'+sql+'",1,1)');

直接数据集中判断,不用存储

select * from 表名称

where 1=1

${if(fine_username="12345" ||fine_username="admin","","and 表中字段 ='"+ fine_username + "'")}

  • wangjiaojiao wangjiaojiao(提问者) 有可以在 where 条件当中直接做判断的嘛
    2024-10-25 09:07 
  • CD20160914 CD20160914 回复 wangjiaojiao(提问者) 有呀。看修改
    2024-10-25 09:09 
  • 2关注人数
  • 95浏览人数
  • 最后回答于:2024-10-25 09:10
    请选择关闭问题的原因
    确定 取消
    返回顶部