0

使用 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

然后它就像一个魅力(即使是选择)。

不要它在操作系统上的工作方式比 Windows 更好......

4

1 回答 1

0

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

于 2012-09-16T22:39:39.467 回答