I am trying to connect to sql server 2005 database from a * NIX machine:
I have the following configuration: Linux 64bit
ruby -v ruby ββ1.8.6 (2007-09-24 patchlevel 111) [x86_64-linux] important gems: dbd-odbc (0,2,4) dbi (0,4,1) active record sql server adapter - as a plugin
ruby-odbc 0.9996 (installed without any options). UnixODBC installed freeTDS installed
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;"
or
DRIVER=/usr/lib/libtdsodbc.so;TDS_Version=8.0;SERVER=XXXX;DATABASE=XXX;Port=1433;uid=XXX;pwd=XXXX;"
I get the following error:
>>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'
It looks like ODBC cannot find a suitable ODBC driver, but I have no idea why.
I had a problem with /usr/lib/libtdsodbc.so, which is empty by default debian package free-tds dev, but I decided to remove the remote package and install it from sources.
Feel any thought!
Note: I can also connect using the same steps on mac 10.5
apetrov