首页 > 解决方案 > 受 dbexecute 影响的行总是为 0

问题描述

我正在尝试获取受更新查询影响的行数。我正在使用与 SQL 服务器数据库的池连接。行更新得很好,但我不知道如何获得我想为用户显示的受影响的行数。我已经阅读了 dbExecute 的文档,它说:

dbExecute() 总是返回一个标量数字,它指定受语句影响的行数。通过关闭或无效的连接发出语句时,如果语句的语法无效,或者如果语句不是非 NA 字符串,则会引发错误。

我认为池可能是问题所在,所以我也使用常规 dbConnect 进行了尝试,但 res 仍然为 0。

有人可以展示我如何拉出并向用户显示受影响的行数吗?

    observeEvent(input$recupdate, {

    res <-
      #poolWithTransaction(con2, function(con2) {
        dbExecute(con2, paste(
          "UPDATE [Test_DB].[dbo].[mlt] SET testvar = 1 where idnum in ('",
          trim(paste(filteredData()$idnum, collapse="','")),"')", sep=""))  
      #})


    #print(res)    
    showModal(modalDialog(
      title = "Rows affected:",
      res,
      easyClose = TRUE,
      footer = NULL
    ))

  })

标签: sqlr

解决方案


推荐阅读