在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
然後執行 dk.rb install
2. 安裝dbi
可由這邊取得dbi的套件 http://rubygems.org/gems/dbi
下載後執行 gem install dbi-0.4.3.gem (套件版本名稱請自行更換)
3. 安裝dbd-odbc
可由這邊取得dbd-odbc的套件 http://rubygems.org/gems/dbd-odbc
下載後執行 gem install dbd-odbc-0.2.5.gem (套件版本名稱請自行更換)
4. 安裝ruby-odbc
可由這邊取得ruby-odbc的套件 http://rubygems.org/gems/ruby-odbc
下載後執行 gem install ruby-odbc-0.99994.gem (套件版本名稱請自行更換)
5. 檢視安裝的套件
在命令提示字元下執行 gem list 可以看到目前安裝的套件
其中 deprecated 這個套件被安裝了兩的版本 (3.0.0, 2.0.1)
而3.0.0 這個版本太新了,反而會造成dbi在呼叫的時候產生錯誤
目前先建議把沒用到的版本移除
在命令提示字元下執行 gem uninstall deprecated
然後系統會問你要移除的版本
選擇後按下enter
重新輸入gem list 確認目前安裝的套件
6. 設定ODBC
在視窗執行的地方,輸入odbc
然後選擇"設定資料來源(ODBC)"
然後在"使用者資料來源名稱"的標籤頁,按一下新增
選擇"SQL Server Native Client 10.0", 然後按下完成
填入資料
名稱的部分是將來ruby程式要呼叫的名稱
完成後按下下一步
選擇"由使用者所輸入的登入識別碼及密碼進行SQL Server帳戶驗證"
並輸入帳號密碼
記得SQL server要調整成"SQL Server 及 Windows 驗證模式"
接下來都使用預設的選項直到完成
有需要的人請再自己修改
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