Log.log(work)

いろんな作業メモ

RubyでSQLServerへつなぎたい2

前回失敗したRDBIじゃなくてtiny_tdsで行けるらしいので試してみた。

環境:Windows8.1 (64bit)
Ruby:2.4.4p296
Bundler:1.16.2
DB:SQL Server 2017

①接続準備

ruby

require 'tiny_tds'
require 'bundler/setup'

と書くとつながるらしいので、これが動くように必要なものをインストール&準備する。

gem install tiny_tds
gem install bundler
bundle init
bundle install --path vendor/bundle

SQLServerのポートの確認
デフォルトで動的になっているので1433固定にしておく。

◆スタート 
→ Microsoft SQL Server 2017
→ 構成ツール
→ SQL Server 構成マネージャー

sql Server Configuration Managerを開いたら、左のメニューの「SQL Server ネットワークの構成」を開き、
[インスタンス名] のプロトコルをクリック。
TCP/IP」をクリックして「IPアドレス」タブを選択し、一番下のIPALLを設定しておく。

③いざ接続

require 'tiny_tds'
require 'bundler/setup'

client = TinyTds::Client.new host: '[my_hostname]', port: 1433, database: '[db]', azure: false

results = client.execute 'SELECT * FROM my_table'

results.each do |row|
  puts row['columname']
end

で出力されたのでOK.