[英]How to connect from ruby to MS Sql Server
我正在嘗試從* NIX機器連接到sql server 2005數據庫:
我有以下配置:Linux 64bit
ruby -v ruby 1.8.6(2007-09-24 patchlevel 111)[x86_64-linux]重要的寶石:dbd-odbc(0.2.4)dbi(0.4.1)活動記錄sql server adapter - as plugin
ruby-odbc 0.9996(沒有任何選項安裝。)安裝了unixODBC freeTDS
cat /etc/odbcinst.ini
[FreeTDS]
Description = TDS driver (Sybase/MS SQL)
Driver = /usr/lib/libtdsodbc.so
Setup = /usr/lib/odbc/libtdsS.so
CPTimeout =
CPReuse =
FileUsage = 1
DSN:
DRIVER=FreeTDS;TDS_Version=8.0;SERVER=XXXX;DATABASE=XXX;Port=1433;uid=XXX;pwd=XXXX;"
要么
DRIVER=/usr/lib/libtdsodbc.so;TDS_Version=8.0;SERVER=XXXX;DATABASE=XXX;Port=1433;uid=XXX;pwd=XXXX;"
我收到以下錯誤:
>>ActiveRecord::Base.sqlserver_connection({"mode"=>"ODBC", "adapter"=>"sqlserver", "dsn"=>my_dns)
DBI::DatabaseError: IM002 (0) [unixODBC][Driver Manager]Data source name not found, and no default driver specified
from /usr/lib/ruby/1.8/DBD/ODBC/ODBC.rb:95:in `connect'
from /usr/lib/ruby/1.8/dbi.rb:424:in `connect'
from /usr/lib/ruby/1.8/dbi.rb:215:in `connect'
from /opt/ublip/rails/current/vendor/plugins/activerecord-sqlserver-adapter/lib/active_record/connection_adapters/sqlserver_adapter.rb:47:in `sqlserver_connection'
看起來ODBC無法找到合適的ODBC驅動程序,但我不知道為什么。
我遇到了/usr/lib/libtdsodbc.so的問題,它在默認的debian軟件包free-tds dev中是空的,但我解決了它,刪除了破壞的軟件包並從源代碼安裝。
會不會有任何想法!
注意:我總是在mac 10.5上使用相同的步驟進行連接
這看起來很接近,我已經得到了相同類型的設置來使用Ubuntu 8.04(使用Ruby 1.8.6。)因為這是在Debian上,它應該是類似的。
應安裝這些軟件包:unixodbc unixodbc-dev freetds-dev libdbd-odbc-ruby tdsodbc
/etc/odbcinst.ini應該有這樣的東西:
[FreeTDS]
Description = FreeTDS unixODBC Driver
Driver = /usr/lib/odbc/libtdsodbc.so
Setup = /usr/lib/odbc/libtdsodbc.so
UsageCount = 1
和/etc/freetds/freetds.conf :(其中XXX是數據庫名稱,NNN ...是服務器的IP):
[XXX]
host = NNN.NNN.NNN.NNN
tds version = 8.0
client charset = UTF-8
text size = 262144
port = 1433
然后連接:
ActiveRecord::Base.sqlserver_connection({"mode"=>"ODBC",
"adapter"=>"sqlserver",
"dsn"=>"DRIVER=FreeTDS;SERVERNAME=XXX;DATABASE=XXX;uid=XXX;pwd=XXX"
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.