关于JS执行存储过程怎么带参数的问题

如题,我拼接除了这样的sql

image.png

但是我执行的时候一直收不到返回值,可是我的存储过程是设置有返回值的.数据库的执行过程如下:image.png写的完整js:

window.form = this.options.form; //当前的form赋值给全局变量

var $iframe = $("<iframe id='inp' name='inp' width='100%' height='100%' scrolling='no' frameborder='0'>"); // iframe参数的命名及宽高等

$iframe.attr("src", "http://localhost:8075/webroot/decision/view/form?viewlet=%25E6%258E%25A7%25E4%25BB%25B6%25E6%25B5%258B%25E8%25AF%2595.frm");

var o = {

title: "选择要更新的数据",

width: 300, //调整对话框宽度

height: 180 //调整对话框高度

};

FR.showDialog(o.title, o.width, o.height, $iframe, o); //弹出对话框

setInterval(function() {

var a = _g().parameterEl.getWidgetByName('status').getValue();

var b = _g().parameterEl.getWidgetByName('orgcode').getValue();

var c = _g().parameterEl.getWidgetByName('period').getValue();

var d = _g().parameterEl.getWidgetByName('class').getValue();

var e = _g().parameterEl.getWidgetByName('type').getValue();

if (a == 1) {

_g().parameterEl.getWidgetByName('status').setValue(0);

var sql = "EXEC pro_Finance_report_list_p" + " " + "'" + c + "'" + "," + "'" + d + "'" + "," + "'" + b + "'" + "," + "'" + e + "'";

alert(sql);

var flag = -1;

FR.Msg.confirm("警告", "是否要进行更新?", function(value) {

if (value == true) {

flag = 1;

ialert(flag);

} else {

flag = 0;

}

}, 100);

function ialert(flag) {

if (flag != -1) {

if (flag) {

FR.Msg.toast("更新中,请等待结果...");

var a = FR.remoteEvaluate('SQL("FineDB","' + sql + '",1,1)');

if (a) {

FR.Msg.toast("更新成功,即将刷新界面");

setTimeout(function() {

location.reload();

}, 1000);

} else {

FR.Msg.toast("更新失败");

}

} else {

FR.Msg.toast("取消更新");

}

}

}

}

}, 100);

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

var sql = "EXEC pro_Finance_report_list_p '"+C+"','"+D+"','"+E+"'";

另外你的存储过程bengin 之后最好紧跟一个SET NOCOUNT ON

image.png

最佳回答
0
snrtuemcLv8专家互助
发布于2022-1-7 09:28

参考

var sql="exec sp_rms_select_0460 "+FUNDCODE+","+DATE+","+STATUS;

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

  • 3关注人数
  • 277浏览人数
  • 最后回答于:2022-1-7 09:30
    请选择关闭问题的原因
    确定 取消
    返回顶部