JS清空数据表失败

想实现点价按钮清空数据表,前端页面点击清空数据按钮,清空失败,JS如下,各位大佬给看下是不是哪里写错了

datasystem_data_governance:为数据连接名

var a = FR.remoteEvaluate('=SQL("datasystem_data_governance","truncate TABLE fill_data",1,1)')

if(a == 0){

  FR.Msg.toast('表清空成功');

}else{

  FR.Msg.toast('表清空失败');

}

按钮清空数据表测试.cpt


FineReport Ariana 发布于 2021-1-20 15:33 (编辑于 2021-1-21 11:21)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共5回答
最佳回答
0
snrtuemcLv8专家互助
发布于2021-8-4 08:42

这个正常可以删除表数据的,检查是不是脚本限制没有关闭,碰到过有人没有关闭监本限制,导致FR.remoteEvaluate不生效,也没提示

image.png

最佳回答
0
maoningLv5初级互助
发布于2021-1-20 15:37

truncate TABLE 换成delete from 试试

  • Ariana Ariana(提问者) 试了下也不行
    2021-01-20 15:46 
  • maoning maoning 回复 Ariana(提问者) var sql=\"SQL(\\\"datasystem_data_governance\\\",\\\"truncate TABLE fill_data\\\",1,1)\"; var c=FR.remoteEvaluate(sql);
    2021-01-21 08:47 
  • Ariana Ariana(提问者) 回复 maoning 页面显示清空了,但查数据库还是有数据啊
    2021-01-21 11:22 
最佳回答
0
shirokoLv6资深互助
发布于2021-1-20 15:40

这个没有返回值吧。。并不能判断是不是清空成功。

有没有成功你去数据库看

  • Ariana Ariana(提问者) 实在数据库看来着,确实没有成功
    2021-01-20 15:46 
  • shiroko shiroko 回复 Ariana(提问者) truncate TABLE fill_data 直接到数据库编辑器去运行一下,看看有没有问题,没问题的话直接在数据集预览一下看看有没有问题。
    2021-01-21 10:07 
  • Ariana Ariana(提问者) 回复 shiroko 在数据集执行了下truncate报错了,上网查了下说insert,delete,update操作的时候使用了excecuteQuery()方法,而不是excecuteUpdate()方法;小姐姐这种情况该怎么处理呢
    2021-01-21 11:37 
  • shiroko shiroko 回复 Ariana(提问者) 不要看报错,看数据库里有没有真的清空
    2021-01-21 12:16 
  • shiroko shiroko 回复 Ariana(提问者) 确实不行的话估计就是不支持。。我这边oracle是虽然报错但是实际上会删除的
    2021-01-21 12:17 
最佳回答
0
xiaoxing2315Lv6见习互助
发布于2021-1-20 15:53(编辑于 2021-1-20 15:54)

这个要看数据库是啥,JS里用FR.remoteEvaluate写增删改有的数据库不支持,查应该没问题。可以换成提交入库,完了写回调函数。

  • Ariana Ariana(提问者) MySQL,试了下也不行
    2021-01-20 16:09 
  • Ariana Ariana(提问者) 我按您的方式设置了提交入库,把模板上传了,麻烦您给看下是不是哪里写错了
    2021-01-20 16:12 
最佳回答
0
用户A7833092Lv4初级互助
发布于2021-1-21 09:45

可以试试存储过程的方式,这种很容易出现字符转义错误。

  • Ariana Ariana(提问者) 实在数据集里面写存储过程吗
    2021-01-21 11:35 
  • 用户A7833092 用户A7833092 回复 Ariana(提问者) 在数据库里面写,然后在帆软调用
    2021-01-21 15:30 
  • Ariana Ariana(提问者) 回复 用户A7833092 嗯嗯
    2021-01-21 16:11 
  • 用户A7833092 用户A7833092 回复 Ariana(提问者) 在JS中类似这样调用存储过程 var sql = String.format(\"call insert_kpi_project_work2({0})\",\"\'\"+params+\"\',\'\"+worktask_state+\"\'\"); var a = FR.remoteEvaluate(\'sql(\"gaotou_proj_kpi\",\"\'+sql+\'\",1,1)\'); insert_kpi_project_work2 是你的存储过程名,后面接的是参数,gaotou_proj_kpi是你的帆软数据库连接
    2021-01-21 17:13 
  • 5关注人数
  • 968浏览人数
  • 最后回答于:2021-8-4 08:42
    请选择关闭问题的原因
    确定 取消
    返回顶部