js调用存储过程(存储过程无返回值)

存储过程没有返回值的时候,能通过js调用吗?

sql函数调用会执行两遍,有没有其它渠道

暂不考虑给存储过程添加返回值

FineReport Doctor_Wei 发布于 2021-5-6 16:48 (编辑于 2021-5-6 16:49)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共4回答
最佳回答
0
Doctor_WeiLv7中级互助
发布于2021-5-20 17:10

目前sql函数必须要有返回值,反馈给官方了,期待后续

最佳回答
0
shirokoLv6资深互助
发布于2021-5-6 16:56

SQL不会执行两遍吧,你检查下是不是调用了两遍

最佳回答
0
luojian0323Lv7资深互助
发布于2021-5-6 18:21

今天在学习fr的时候,在按钮中用js实现insert操作,具体实现是:var sql = "INSERT INTO TABLE1(COL1) SELECT 'AA'";

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

我发现无论如何调整,插入数据库表的都是两条记录,也就是说,insert操作执行了2次。后来请教gqmao老师,在老师的指导下发现,要正确使用SQL()函数插入数据,待执行的sql必须要有返回结果集,否则,就会执行2次。

下面的代码,执行结果就只插入1条。

存储过程:

create proc test_w

(

@t varchar(50)

)

as

set nocount on

insert into table1(col1) select @t

select 1

按钮代码:

var sql="exec test_w 't11111tt'";

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

  • Doctor_Wei Doctor_Wei(提问者) 我知道这个,所以我想问一下在不处理存储过程的前提下(不添加返回值),还有没有其它调度方式
    2021-05-07 08:59 
  • yzm777948 yzm777948 回复 Doctor_Wei(提问者) 问题解决了吗?我也碰到这个问题
    2022-05-28 17:02 
  • Doctor_Wei Doctor_Wei(提问者) 回复 yzm777948 必须给存储过程添加一个返回值,这样就不会执行两遍了
    2022-05-30 10:52 
  • yzmp754J5745601 yzmp754J5745601 回复 Doctor_Wei(提问者) 有返回值的存储过程怎么调用
    2023-03-21 09:03 
最佳回答
0
谷少天Lv4见习互助
发布于2021-5-20 17:32

var sql ="SQL(\"kddata\",\"call ABC()\",1,1)"; --kadata 数据名,ABC() 存储过程

alert(sql);

return FR.remoteEvaluate(sql);

 试试这个

  • yzm777948 yzm777948 试了,没有成功,call ABC()没有传参,这个写的也有问题吧
    2022-05-28 17:00 
  • 4关注人数
  • 4467浏览人数
  • 最后回答于:2021-5-20 17:32
    请选择关闭问题的原因
    确定 取消
    返回顶部