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
我正在使用Ruby
和tiny_tds gem
作为我的脚本。在mssql数据库上,node_id 220不存在。当我运行此脚本时,它会通过,但我看不到输出消息“找不到节点ID”。
答案 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