js调用存储过程会insert两遍,该如何解决?(补贴)

填报成功后使用js调用存储过程,发现insert了两遍数据,怎么解决?

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

image.png

存储过程执行需要有返回值

sqlserver中添加上面两句

oracle中添加输出参数即可

image.png

  • 用户T0087430 用户T0087430(提问者) 感谢!
    2021-07-07 11:03 
  • promiseykl1988 promiseykl1988 mysql怎么加呢?
    2021-07-07 11:14 
  • Doctor_Wei Doctor_Wei 回复 promiseykl1988 补充截图了 只需要有个返回值就行了,定义输出变量,然后赋值
    2021-07-07 13:48 
  • promiseykl1988 promiseykl1988 回复 Doctor_Wei 如果是一般的Update的或者 InSERt 这种不是储存过程 的这种呢
    2021-07-07 14:21 
  • Doctor_Wei Doctor_Wei 回复 promiseykl1988 都不可以,js部分通过sql函数调用的语句,没有返回值,会再次执行,这是一个机制 没有返回值的时候,系统默认执行失败,再次执行,所以会出现执行两次的情况,直接写这些语句也是的,你最好试一下,放到存储过程中是最合适的
    2021-07-07 14:23 
最佳回答
0
杨朝健Lv5中级互助
发布于2021-7-7 10:59

怎么调用的存储过程

  • 用户T0087430 用户T0087430(提问者) var sql = \"EXEC [dbo].[cwcs_copy_version] \"+pro+\",\"+\"\"+new_v+\"\"+\",\"+old_v +\",\"+\"\"+fine_username+\"\"; var e =FR.remoteEvaluate(\'SQL(\"xcydw\",\"\'+sql+\'\",1,1)\'); 这是SQLserver数据库
    2021-07-07 11:03 
  • 5关注人数
  • 936浏览人数
  • 最后回答于:2021-7-7 13:48
    请选择关闭问题的原因
    确定 取消
    返回顶部