Соединение Ruby с SQL Server - PullRequest
13 голосов
/ 13 января 2011

У меня проблемы с подключением Ruby к Microsoft SQL Server.Я использую Mac OS X, но целевой средой является Ubuntu Linux.

Вот что я пробовал:

  • Установка unixODBC
  • Install FreeTDS
    • использовал параметры --with-unixodbc=/usr/local/etc --with-tdsver=8.0

У меня были эти файлы в /usr/local/etc:

  • odbc.ini
  • odbcinst.ini
  • freetds.conf

Я добавил ссылку на драйвер FreeTDS в *Файл 1035 * в мой файл драйвера ODBC выглядит следующим образом:

;
; odbcinst.ini
;
;
[FreeTDS]
Driver = /usr/local/lib/libtdsodbc.so

Затем я настроил сервер в файле freetds.conf следующим образом:

# Aries database server (SQL Server 2008)
[aries-db1]
        host = xx.xx.xx.xx
        port = 1433
        tds version = 8.0

И, наконец, я добавил DSBC ODBC.в файле odbc.ini вот так:

[aries-db1]
Driver      =   FreeTDS
Description =   ODBC Connection via FreeTDS
Trace       =   1
Servername  =   aries-db1
Database    =   MY_DB
UID         =   user1
PWD         =   pass1

Я могу убедиться, что мой сервер подключен к сети и порт открыт (с помощью проверки порта telnet & yougetsignal.com).

Кактест, я сделал это:

tsql -S aries-db1 -U user1 -P pass1

И, кажется, подключился просто отлично.Передача неверных значений привела к ожидаемым ошибкам.

Итак, наконец, мой вопрос:

Как мне распространить это на Ruby?Ничто из того, что я пробовал до сих пор, не сработало.Я попробовал Sequel следующим образом:

require 'sequel'
Sequel.connect('aries-db1')['select * from foo'].all

И я получаю такую ​​ошибку:

Sequel::DatabaseConnectionError: ODBC::Error: S1000 (0) [unixODBC][FreeTDS][SQL Server]Unable to connect to data source

, которая говорит мне, что он правильно находит конфигурацию моего драйвера, но по какой-то причине не может подключиться.

Я также попробовал DBI следующим образом:

DBI.connect('DBI:ODBC:aries-db1')

И я получаю похожую ошибку.

Есть предложения?Я чувствую, что я очень близко, но я не уверен, что делать дальше, чтобы устранить эту проблему.

1 Ответ

14 голосов
/ 13 января 2011

Взгляните на https://github.com/rails-sqlserver/tiny_tds TinyTds - современная, простая и быстрая библиотека FreeTDS для Ruby с использованием DB-Library

Простота установки и использования

...