RDBI + SQL Server で NVARCHAR を SELECT するとエラーが発生する

Ruby から SQL Server を操作しようとすると、以下のエラーが出て何もできません。環境は Windows で、rdbi-driver-odbc を使用してデータベースにアクセスしようとしています。

[text]C:/Ruby21-x64/lib/ruby/gems/2.1.0/gems/rdbi-driver-odbc-0.1.2/lib/rdbi/driver/odbc.rb:214:in block in new_execution': undefined method []’ for nil:NilClass (NoMethodError)
from C:/Ruby21-x64/lib/ruby/gems/2.1.0/gems/rdbi-driver-odbc-0.1.2/lib/rdbi/driver/odbc.rb:211:in collect'
from C:/Ruby21-x64/lib/ruby/gems/2.1.0/gems/rdbi-driver-odbc-0.1.2/lib/rdbi/driver/odbc.rb:211:in
new_execution’
from C:/Ruby21-x64/lib/ruby/gems/2.1.0/gems/rdbi0.9.1/lib/rdbi/statement.rb:163:in execute'
from C:/Ruby21-x64/lib/ruby/gems/2.1.0/gems/rdbi0.9.1/lib/rdbi/database.rb:189:in
execute’
from C:/dbtest.rb:6:in `<main>’ WARNING: #<ODBC::Statement:0x2d69000> was not dropped before garbage collection.[/text]

たしかに、Ruby から SQL Server を使うひとなんてまれなんでしょうが、この仕打ちはないんじゃないでしょうか・・・。しかしここで挫けるわけにはいかないので、解決策を調べてみました。

“RDBI + SQL Server で NVARCHAR を SELECT するとエラーが発生する” の続きを読む