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
我在 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