在windows上使用ruby連結SQL 2008

在server 2008上只用ruby連結SQL 2008

在這邊簡介一下

由windows (Server 2008) 使用Ruby (1.91) 連結到SQL2008的設定流程

目前是假設已經在windows 上安裝好SQL server以及ruby runtime的狀況下

接下來所要進行的步驟

 

1. 安裝devkit

如果你之前在安裝其他套件時已經安裝過devkit

就可以跳過這個步驟

直接到步驟2

如果沒有安裝過

可以由這邊取得devkit的安裝程式 http://rubyinstaller.org/downloads/

下載完後解開壓縮,執行 dk.rb init

image

 

然後執行 dk.rb install

image

 

2. 安裝dbi

可由這邊取得dbi的套件 http://rubygems.org/gems/dbi

下載後執行 gem install dbi-0.4.3.gem (套件版本名稱請自行更換)

image

 

3. 安裝dbd-odbc

可由這邊取得dbd-odbc的套件 http://rubygems.org/gems/dbd-odbc

下載後執行 gem install dbd-odbc-0.2.5.gem (套件版本名稱請自行更換)

image

 

4. 安裝ruby-odbc

可由這邊取得ruby-odbc的套件 http://rubygems.org/gems/ruby-odbc

下載後執行 gem install ruby-odbc-0.99994.gem (套件版本名稱請自行更換)

image

 

5. 檢視安裝的套件

在命令提示字元下執行 gem list 可以看到目前安裝的套件

image

 

其中 deprecated 這個套件被安裝了兩的版本 (3.0.0, 2.0.1)

而3.0.0 這個版本太新了,反而會造成dbi在呼叫的時候產生錯誤

目前先建議把沒用到的版本移除

在命令提示字元下執行 gem uninstall deprecated

然後系統會問你要移除的版本

選擇後按下enter

image

 

重新輸入gem list 確認目前安裝的套件

image

 

6. 設定ODBC

在視窗執行的地方,輸入odbc

然後選擇"設定資料來源(ODBC)"

image

 

然後在"使用者資料來源名稱"的標籤頁,按一下新增

image

 

選擇"SQL Server Native Client 10.0", 然後按下完成

image

 

填入資料

名稱的部分是將來ruby程式要呼叫的名稱

完成後按下下一步

image

 

選擇"由使用者所輸入的登入識別碼及密碼進行SQL Server帳戶驗證"

並輸入帳號密碼

記得SQL server要調整成"SQL Server 及 Windows 驗證模式"

image

 

接下來都使用預設的選項直到完成

有需要的人請再自己修改

image

 

7. 在程式碼中連結SQL server

require "dbi"

cn = DBI.connect('dbi:ODBC:SqlServer2008','appuser','1234567')
reader = cn.execute("select top 10 * from [DBName].[dbo].[Table]")
reader.each{|row|
    puts '[' + row['Name'] +  row['Index'] + ']'
}

cn.disconnect