TinyTDS:检查查询是否成功

TinyTDS: chek if query succeded

我在 rails 项目中使用 tiny_tds gem(使用遗留的 MSSQL 2008 数据库)

我执行以下查询:

update_comment_result = self.get_pmi_client.execute("UPDATE UECOMCLI SET COMMENT = '" + params[:comment] + "' " +
        "WHERE ECKTSOC = '" + params[:lcktsoc] + "' AND ECKTNUMERO = '" + params[:lcktnumero] + "' AND ECKTINDICE = '" + params[:lcktpsf] + "' \n" +
        "IF @@ROWCOUNT = 0 \n
        INSERT INTO UECOMCLI (ECKTSOC, ECKTNUMERO, ECKTINDICE, COMMENT) VALUES ('" + params[:lcktsoc] + "', '" + params[:lcktnumero] + "', '" + params[:lcktpsf] + "', '" + params[:comment] + "')")

在那之后,我无法知道查询是否成功。我试过使用:

update_comment_result.affected_rows

其中 returns -1

我也试过了

update_comment_result.each
update_comment_result.return_code

哪个returnsnil

update_comment_result.each
update_comment_result.affected_rows

哪个returns-1

查询成功,因为是在数据库中进行了更改,为什么结果不对?

如何查看查询是否成功?

当您调用 'execute' 方法时,您的 sql 实际上并不 运行。 TinyTDS 仅在您开始操作结果时将其发送到 sql 服务器,如果出现错误,您可以捕获它

res = Client.Execute('sql script')
begin
    res.entries #now sql script is being sent to the sql server
rescue => e
    puts e
end