使用以下语法使用freetds和tinytds gem查询MSSQL 2008数据库时:
db = TinyTds::Client.new(:username => ...)
select = db.execute("EXEC dbo.__stored_procedure__")
db.close
然后这一行导致ruby在Windows上崩溃:
select.each {|x| p x}
奇怪的是,在查询简单选择时:
select = db.execute("SELECT field FROM table")
select.each
不会崩溃 - 它也不会执行任何循环
它也不会让webrick和rails控制台崩溃。
但是当我将代码更改为:
时db = TinyTds::Client.new(:username => ...)
select = []
db.execute("EXEC dbo.__stored_procedure__").each { |x|
select << x
}
db.close
然后它就像一个魅力(即使选择)。
不要比os更好地在os上工作......
答案 0 :(得分:0)
您的期望不正确。我建议你在这里阅读TinyTDS的用法。 https://github.com/rails-sqlserver/tiny_tds#tinytdsclient-usage