请问使用sql函数进行数据插入为何不起作用

出于一些原因,想在某个按钮的点击事件中,使用JS脚本进行一次插入操作:

        前面已经从单元格中获取了了四个值,然后
        var sql="insert into erpm_item (type, name, unit, serialmodel) value ("+vtype+", '"+vname+"', '"+vunit+"', "+vserial+")";
        alert(sql);
        var res=FR.remoteEvaluate("=sql(\"erp\",\""+sql+")\",0,0");

        alert(res);


结果执行时发现尽管SQL语句没有错误,但却一点效果都没有,并没有能成功进行插入操作。
类似:insert into erpm_item (type, name, unit, serialmodel) value (1, 'test002', '1', 0)这样的语句我直接在数据库中执行都可以看到成功,但放在这个按钮的JS脚本中执行就没有效果。


请问是sql函数不支持插入或修改记录的操作吗?还是我哪里错了?
如果我希望在按钮的JS脚本执行插入或修改记录的操作,该如何处理呢?
FineReportcyfage 发布于 2016-11-10 05:54
悬赏:2 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共6回答
最佳回答
0
macro_hard发布于2016-11-10 05:54(编辑于 2023-9-6 09:34)
555
最佳回答
0
李半仙发布于2016-11-10 07:55(编辑于 2023-9-6 09:34)
555
  • cyfage cyfage(提问者)

    用存储过程的话也不是不行,不过我想应该算是另外一种解决办法了

    但是针对具体问题依然不是很理解哈
    请教一下……
    你给的链接里,语句起码还能执行只是执行了两次
    为啥我的这个语句根本就不执行呢?
    回复
    2016-11-10 08:03 
最佳回答
0
cyfage发布于2016-11-10 08:03(编辑于 2023-9-6 09:34)
555
  • 李半仙 李半仙

    后面那个0,0是啥意思?
    回复
    2016-11-10 08:06 
最佳回答
0
李半仙发布于2016-11-10 08:06(编辑于 2023-9-6 09:34)
555
  • cyfage cyfage(提问者)

    我以为是要求返回结果,想着insert不需要就填的0,不过后来我改成1,1也是一样,操作不成功
    回复
    2016-11-10 08:10 
最佳回答
0
cyfage发布于2016-11-10 08:10(编辑于 2023-9-6 09:34)
555
最佳回答
0
李半仙发布于2016-11-10 08:40(编辑于 2023-9-6 09:34)
555
  • cyfage cyfage(提问者)

    谢谢,我按照这个格式写了下,可还是不行:

    var vtype=contentPane.curLGP.getCellValue(\"B3\");
    var vname=contentPane.curLGP.getCellValue(\"B5\");
    var vspec=contentPane.curLGP.getCellValue(\"B7\");
    var vcode=contentPane.curLGP.getCellValue(\"B9\");
    var vunit=contentPane.curLGP.getCellValue(\"B11\");
    var vserial=contentPane.curLGP.getCellValue(\"B13\");
    var vdescript=contentPane.curLGP.getCellValue(\"B15\");

    var sql=\"select id from erpm_item where name=\'\"+vname+\"\'\";
    var res=FR.remoteEvaluate(\"=sql(\\\"erp\\\",\\\"\"+sql+\"\\\",1,1)\");

    if(\'\'==res)
    {
            sql=\"insert into erpm_item (type, name, unit, serialmodel) value (\"+vtype+\", \'\"+vname+\"\', \'\"+vunit+\"\', \"+vserial+\")\";
            res=FR.remoteEvaluate(\'sql(\"erp\",\"\'+sql+\'\",1,1)\');
    }
    回复
    2016-11-10 08:44 
最佳回答
0
cyfage发布于2016-11-10 08:44(编辑于 2023-9-6 09:34)
555
最佳回答
0
cherishdqy发布于2016-11-10 08:45(编辑于 2023-9-6 09:34)
555
最佳回答
0
李半仙发布于2016-11-10 08:45(编辑于 2023-9-6 09:34)
555
最佳回答
0
cyfage发布于2016-11-10 08:52(编辑于 2023-9-6 09:34)
555
  • 李半仙 李半仙

    我考虑会不会是因为你字符串起名起了个关键字的名字,js它不认识呀?
    var sql =\"SQL(\\\"FRDemo\\\",\\\"SELECT 销售员 FROM 销量 where 销售员=\'\"+name+\"\'\\\",1,1)\";
    var len = FR.remoteEvaluate(sql);
    参照@cherishdqy 这种的格式来写
    回复
    2016-11-10 08:56 
  • 0关注人数
  • 949浏览人数
  • 最后回答于:2018-3-18 10:58
    活动推荐 更多
    热门课程 更多
    返回顶部