У меня проблемы с подключением к установке SQL Server 2005 из этого очень простого приложения на Ruby:
#!/usr/bin/env ruby
require 'rubygems'
require 'sequel'
Sequel.odbc('dev04')['select top 1 * from users'].all
DSN dev04
указывает на мою odbc.ini
запись в файле:
[dev04]
Driver = FreeTDS
Description = ODBC connection via FreeTDS
Trace = 1
Servername = dev04
Database = Dev04
UID = uDev04
PWD = pwdDev04
FreeTDS
установлен в odbcinst.ini и указывает на эту конфигурацию в freetds.conf
:
[dev04]
host = hm602.mycompany.com
port = 1433
tds version = 7.0
Это работает:
carlos$ tsql -S dev04 -U uDev04 -P pwdDev04
locale is "en_GB.UTF-8"
locale charset is "UTF-8"
1> exit
carlos$
И вот так:
carlos$ iodbctest "DSN=dev04;UID=uDev04;PWD=pwdDev04"
iODBC Demonstration program
This program shows an interactive SQL processor
Driver Manager: 03.52.0406.1211
Driver: 0.82 (libtdsodbc.so)
SQL>exit
Have a nice day.
carlos$
Когда я запускаю этот скрипт на Ruby, я получаю эту ошибку:
carlos$ ruby mssql.rb
/Library/Ruby/Gems/1.8/gems/sequel-3.4.0/lib/sequel/adapters/odbc.rb:37:in `initialize': ODBC::Error 01000 (20002) [FreeTDS][SQL Server]Adaptive Server connection failed (Sequel::DatabaseConnectionError)
from /Library/Ruby/Gems/1.8/gems/sequel-3.4.0/lib/sequel/adapters/odbc.rb:37:in `connect'
from /Library/Ruby/Gems/1.8/gems/sequel-3.4.0/lib/sequel/adapters/odbc.rb:37:in `connect'
from /Library/Ruby/Gems/1.8/gems/sequel-3.4.0/lib/sequel/database.rb:92:in `initialize'
...
Я понимаю, что ошибка «Ошибка подключения адаптивного сервера» может возникать из-за несоответствия версий протокола TDS. Я проверил журналы, и все они, кажется, используют правильную версию (7.0), поэтому я совершенно не понимаю, почему это может произойти.
Есть указатели?