Ruby se connecter à SQL Server

Je vais avoir des problèmes de connexion Ruby pour Microsoft SQL Server. Je suis sous Mac OS X, mais l'environnement cible est Ubuntu Linux.

Voici ce que j'ai essayé:

  • Installer unixODBC
  • Installer FreeTDS
    • utilisé les options --with-unixodbc=/usr/local/etc --with-tdsver=8.0

J'ai eu ensuite ces fichiers dans /usr/local/etc:

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

J'ai ajouté une référence à la FreeTDS pilote dans le odbcinst.ini fichier à mon pilote ODBC de fichier comme ceci:

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

Puis j'ai configuré le serveur dans le freetds.conf fichier comme ceci:

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

Et enfin j'ai ajouté le DSN ODBC dans le odbc.ini fichier comme ceci:

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

Que j'ai pu vérifier que mon serveur est en ligne et le port est ouvert (via telnet & yougetsignal.com port vérifier).

Comme un test, je l'ai fait:

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

Et il semblait se connecter à l'amende juste. En passant dans des valeurs non valides ont entraîné des erreurs attendues.

Donc finalement à ma question:

Comment puis-je étendre à Ruby? Rien, j'ai essayé jusqu'à présent a travaillé. J'ai essayé de Suite comme ceci:

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

Et j'obtiens une erreur comme ceci:

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

Qui me dit qu'il est de trouver ma configuration du pilote correctement, mais pour une raison quelconque ne peut pas se connecter.

J'ai aussi essayé DBI comme ceci:

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

Et je reçois une erreur similaire.

Des suggestions? Je me sens comme je suis très proche, mais je ne suis pas sûr de ce que d'essayer de résoudre ce problème.

source d'informationauteur Ben Scheirman