点击按钮,js调用存储过程插入一条数据。每次点击都会插入两次数据,这是为什么,怎么可以解决?

问题1.png问题2.png

FineReport 18653872186 发布于 2021-6-11 09:50
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共1回答
最佳回答
0
luojian0323Lv7资深互助
发布于2021-6-11 10:08(编辑于 2021-6-11 10:09)

参考一下:

////////////////////////////////////关于数据库存储过程被执行两次/////////////////////////////////

今天在学习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)');

  • 18653872186 18653872186(提问者) 这样确实可以。为什么会这样呢?bug吗?
    2021-06-11 10:18 
  • luojian0323 luojian0323 回复 18653872186(提问者) 这我不知道啊。可能是帆软的机制吧
    2021-06-11 10:19 
  • szksi8 szksi8 跨域就会有两次
    2021-06-11 13:49 
  • 2关注人数
  • 568浏览人数
  • 最后回答于:2021-6-11 10:09
    请选择关闭问题的原因
    确定 取消
    返回顶部