我正在尝试从*NIX机器连接到SQL Server 2005数据库:
我有以下配置:Linux 64位
ruby -v ruby 1.8.6(2007-09-24补丁级别111)[x86_64-linux] 重要的gem: dbd-odbc(0.2.4) dbi(0.4.1) active record sql server adapter-作为插件
ruby-odbc 0.9996(没有任何选项安装。) unixODBC已安装 freeTDS已安装
cat /etc/odbcinst.ini
看起来ODBC无法找到适当的ODBC驱动程序,但我不知道为什么。
我遇到了一个问题,/usr/lib/libtdsodbc.so在默认的Debian包free-tds dev中是空的,但我通过删除损坏的软件包并从源代码安装来解决了这个问题。
非常感谢任何想法!
注意: 我能够使用相同的步骤在Mac 10.5上连接。
我有以下配置:Linux 64位
ruby -v ruby 1.8.6(2007-09-24补丁级别111)[x86_64-linux] 重要的gem: dbd-odbc(0.2.4) dbi(0.4.1) active record sql server adapter-作为插件
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上连接。