Rails - tinytds崩溃红宝石

时间:2012-09-13 06:46:03

标签: ruby-on-rails ruby crash freetds

使用以下语法使用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上工作......

1 个答案:

答案 0 :(得分:0)

您的期望不正确。我建议你在这里阅读TinyTDS的用法。 https://github.com/rails-sqlserver/tiny_tds#tinytdsclient-usage