Ruby で SQL Server を扱う(Windows)


Windows で Ruby Installer を使っている場合の手順です。Ruby のバージョンは 2.x 系を使っています。まずは gem で rdbi-driver-odbc を入れます。

gem install rdbi
gem install rdbi-driver-odbc

DEVELOPMENT KIT を入れろと怒られた場合

DEVELOPMENT KIT がない場合は以下のようなエラーが出てきます。

Please update your PATH to include build tools or download the DevKit
from 'http://rubyinstaller.org/downloads' and follow the instructions
at 'http://github.com/oneclick/rubyinstaller/wiki/Development-Kit'

メッセージの通り、 http://rubyinstaller.org/downloads から DEVELOPMENT KIT をダウンロードしてください。7-zip の自己解凍形式なので、ダブルクリックして適当な場所へ展開しましょう。ただし、永続的に使うものなので、展開する場所は選んだ方がよいです。展開後、コマンドプロンプトで以下のコマンドを実行します。

cd "\path\to\development kit"
ruby dk.rb init
ruby dk.rb install

DEVELOPMENT KIT と ruby のインストールされているドライブが異なる場合、 config.yml を開いて ruby のインストールパスを自分で指定してから install を実行します。

ODBC 設定

「ODBC データ ソース アドミニストレーター」を開き、適当に DSN を設定します。スタートメニューから ODBC で検索すると出てきます。説明は省きますが、GUI なので見ればなんとなくわかると思います。

コードを書く

コードは以下のような感じです。DSN、ユーザー、パスワード、SQL 等を書き換えれば動きます。

require 'rdbi-driver-odbc'

dbh = RDBI.connect :ODBC, :db => "dsn", :user => "username", :password => "password"
begin
    rs = dbh.execute "SELECT TOP 1 * FROM Table"
    results = rs.as(:Struct).fetch(:first)
    p results
ensure
    dbh.disconnect
end