Подтвердить что ты не робот

Соединение Ruby с SQL Server

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

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

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

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

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

Я добавил ссылку на драйвер FreeTDS в файле odbcinst.ini в свой файл драйвера 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

И, наконец, я добавил ODBC DSN в файл 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')

И я получаю аналогичную ошибку.

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

4b9b3361

Ответ 1

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

Легко устанавливается и прост в использовании