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よりもOSでうまく機能しないでください...

4

1 に答える 1

0

Your expectations are incorrect. I suggest you read over the TinyTDS usage here. https://github.com/rails-sqlserver/tiny_tds#tinytdsclient-usage

于 2012-09-16T22:39:39.467 に答える