Skip to main content
 首页 » 编程设计

ruby-on-rails之Rails-Tinytds崩溃的 ruby

2025年12月25日23kevingrace

当使用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上比Windows更好地工作...

请您参考如下方法:

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