[英]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.