关于remoteEvaluate内sql的返回值问题

sql内写一行如  select '1111' ,remoteEvaluate是能获取到返回值的
如:,这个和例子一样,是正常的。

而sql写成这样:var sql1=" delete nemotest1 where code = '123' select  '43243'" ,就获取不到返回值了。
如图:,语句是正常执行了的,数据库的数据已被删除。

我现在的场景是想在删除数据后返回结果,数据库中是影响的条数,我取不到,然后到论坛搜索,上面多数说用存储过程,但存储过程的输出值output一般都是要先定义变量,然后把存储过程的值付给变量,最后select @变量。  按照以上的问题,我alert的值还是空的,根本达不到效果啊。


求大神指点
FineReportNemo_Wx 发布于 2016-12-22 09:47
悬赏:2 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共13回答
最佳回答
0
gqmao发布于2016-12-22 09:47(编辑于 2023-9-6 09:34)
555
最佳回答
0
Poseidon发布于2016-12-22 09:52(编辑于 2023-9-6 09:34)
555
最佳回答
0
Nemo_Wx发布于2016-12-22 10:49(编辑于 2023-9-6 09:34)
555
  • Poseidon Poseidon

    一样的啊,你调用过程需要使用call或者exec函数,而不是直接使用select
    回复
    2016-12-22 10:50 
最佳回答
0
Poseidon发布于2016-12-22 10:50(编辑于 2023-9-6 09:34)
555
  • Nemo_Wx Nemo_Wx(提问者)
    select 是我简写的,我的内容你没看完哦,存储过程如果想获取返回值output,我是这么些的
    DECLARE @a int
    exec  存储过程名 @a output
    select @a
    这样的语句alert出来就是空的,我主题也是这个意思,多行的sql写到里面,获取的值就不显示了,而在数据库里运行,却是正确的。
    回复
    2016-12-22 10:59 
最佳回答
0
Nemo_Wx发布于2016-12-22 10:59(编辑于 2023-9-6 09:34)
555
  • Poseidon Poseidon

    你过程是在数据集中创建的?还是在SQL变量中创建的?
    你直接在数据库创建个过程,FR调用就不好了么。过程返回什么结果SQL函数接收什么结果啊
    回复
    2016-12-22 11:01 
最佳回答
0
Poseidon发布于2016-12-22 11:01(编辑于 2023-9-6 09:34)
555
  • Nemo_Wx Nemo_Wx(提问者)

    储存过程库里是这么写的
    create PROCEDURE  deleteperson
    (@personcode varchar,
    @jg int OUTPUT)
    as
    begin
    delete nemotest1 where code = @personcode
    select @@rowcount
    end
    我要它的受影响的行数

    javascript里这么写
    var sql1=\" DECLARE @a int exec deleteperson \'1\' ,@a OUTPUT select @a\"
    var r = FR.remoteEvaluate(\'sql(\"泛微OA\",\"\'+sql1+\'\",1,1)\');
    alert(r)

    结果返回是的空的,数据库里执行应该返回的数字啊
    回复
    2016-12-22 11:13 
最佳回答
0
Nemo_Wx发布于2016-12-22 11:13(编辑于 2023-9-6 09:34)
555
  • Poseidon Poseidon

    你在数据库中执行过程返回的结果是什么?
    var sql1=\"  exec deleteperson 变量1,变量2,变量3 \"
    var r = FR.remoteEvaluate(\'sql(\"泛微OA\",\"\'+sql1+\'\",1,1)\');
    alert(r)
    回复
    2016-12-22 11:22 
最佳回答
0
Poseidon发布于2016-12-22 11:22(编辑于 2023-9-6 09:34)
555
  • Nemo_Wx Nemo_Wx(提问者)

    var sql1=\"  exec deleteperson 变量1,变量2,变量3 \"   直接这样写, aler出来也是空的   ,库里的数据会删掉,也就是说语句是正常执行了,就是值返回不了,我想获取它影响的行数,来判断是否成功的。
    回复
    2016-12-22 11:28 
最佳回答
0
Nemo_Wx发布于2016-12-22 11:28(编辑于 2023-9-6 09:34)
555
  • Poseidon Poseidon

    你就是想判断下是否成功是么?那你何必这么麻烦,你定义个变量为0,在过程中使用事物,事物成功吧变量赋值为1,失败赋值为0,然后把这个变量当这个过程的返回值不就好了?FR使用SQL函数得到这个变量来判断是否成功
    回复
    2016-12-22 11:30 
最佳回答
0
Poseidon发布于2016-12-22 11:30(编辑于 2023-9-6 09:34)
555
  • Nemo_Wx Nemo_Wx(提问者)

    如果where后面的条件全不满足,也就是空的数据,delete和update时候它也会执行成功的吧。所以事务不能满足需求,需要得到【受影响的行数】。
    回复
    2016-12-22 14:07 
  • 0关注人数
  • 752浏览人数
  • 最后回答于:2016-12-22 14:22
    活动推荐 更多
    热门课程 更多
    返回顶部