找不到Ruby MSSQL查询错误消息

时间:2016-04-01 15:54:07

标签: sql-server ruby

result = client.execute("SELECT TOP (2000) node_id FROM  [td].[node] WHERE  (node_id = 220)")
result.each do |row|
  if result.nil?
    puts 'Node id could not found'
  else
    puts row
    puts 'Node is found on the database'
  end
end

我正在使用Rubytiny_tds gem作为我的脚本。在mssql数据库上,node_id 220不存在。当我运行此脚本时,它会通过,但我看不到输出消息“找不到节点ID”。

2 个答案:

答案 0 :(得分:0)

请查看自述文件:https://github.com/rails-sqlserver/tiny_tds

客户端将始终返回Result对象 - 因此即使查询在数据库中找不到匹配的行,结果也不会是nil

答案 1 :(得分:0)

你确定你甚至进入了循环吗?如果result为nil(或为空),则不会有任何行对象进入循环。

result = client.execute("SELECT TOP (2000) node_id FROM  [td].[node] WHERE  (node_id = 220)")
result.each do |row|
    puts 'I came into the loop'
  if result.nil?
    puts 'Node id could not found'
  else
    puts row
    puts 'Node is found on the database'
  end
end

我很确定在你的情况下这不会产生任何结果。你应该测试循环外结果是否为空。

result = client.execute("SELECT TOP (2000) node_id FROM  [td].[node] WHERE  (node_id = 220)")
#test here whether result is empty or not
result.each do |row|
    puts row
    puts 'Node is found on the database'
end