2010-12-09 48 views
4

J'ai essayé de me connecter à SQL Server à partir d'une application ROR dans Ubuntu. Pour cela, j'ai fait les choses suivantes.Connexion à SQL Server 2005 à partir d'une application ROR dans Ubuntu

J'ai installé les bibliothèques suivantes dans mon Ubuntu 10,04

  • unixodbc
  • unixodbc-dev
  • freetds-dev
  • libdbd-odbc-ruby
  • tdsodbc

Après avoir installé ceux-ci, j'ai créé le DSN et fait le cha requis nges dans les fichiers odbc.ini et freetds.conf.

Je testé la connexion à l'aide "tsql" comme ci-dessous

tsql -S <dsn name> -U <username> -P <pwd> 

Pour cette commande, je reçois l'erreur suivante

Adaptive Server is unavailable

J'ai aussi vérifié les freetds bûche; il est dit "connexion timedout".

Je suis sûr que nous sommes bien avec les configurations (à distance) de notre côté SQL Server. Lorsque j'exécute tsql -C, la version de TDS est 5. Je ne suis pas sûr de savoir comment il est dit TDS 5, car j'ai installé la dernière version de FreeTDS. Et je ne sais pas comment mettre à jour ma version TDS. FYI, j'ai entendu dire que la version 5 de TDS ne peut pas être utilisée pour établir des connexions avec SQL Server. Est-ce correct?

S'il vous plaît me conduiras

Merci, Neo

+0

Ouais, je sais.Mais ma situation actuelle nécessite une connexion sqlserver. – Neo

Répondre

1

freetds.conf vous permet de spécifier la version du protocole TDS que vous souhaitez utiliser. Il suffit d'ajouter un tds version = 8.0 sous la section [global] ou la section que vous avez ajoutée pour votre serveur. S'il n'est pas spécifié, il est par défaut à la version 5.0, ce qui semble être votre cas. Pour plus d'informations, regardez http://www.freetds.org/userguide/freetdsconf.htm

+0

Je l'ai fait aussi. J'ai ajouté le "tds version = 8.0" sous ma section de serveur (pas au niveau global). Mais toujours sa version TDS disant 5 est quand je cours cette commande "tsql -C" – Neo

0

Je réalise que ce n'est pas une réponse à votre question spécifique, mais c'est un conseil de la dernière fois que j'ai essayé d'aller de Linux à SQL Server. C'était en 2009, donc il est possible que quelque chose ait changé depuis.

De toute façon, nous avons eu tellement de problèmes avec cela, nous avons abandonné et décidé d'utiliser JRuby.

Il a résulté en très peu d'efforts pour obtenir la connexion en cours d'exécution en utilisant activerecord-jdbc-adapter et nous n'avons rencontré aucun problème de compatibilité. (Je retire ce que, il y avait one problem I had to fix where we were selecting limited rows in mssql from table with no primary key, identity column, or column named "id")

Je suis en mesure de le faire fonctionner dans le passé à faire comme vous essayez, mais il était toujours beaucoup plus d'efforts que je devais aller jusqu'au bout JRuby .

+0

Je pense, en lisant le commentaire de Neo du 9 décembre '10 - "Ouais je sais, mais ma situation actuelle nécessite une connexion sqlserver." - Votre réponse ne sera pas très utile ... – chiccodoro

+0

Je disais (peut-être pas clairement) que j'ai eu plus de facilité à connecter Rails à SQL Server (quand Ruby tourne sous Linux ou MacOS) en utilisant JRuby qu'en utilisant l'IRM . Qu'est-ce que j'ai mal compris? –

+0

Je vois, désolé pour cela. Je vais garder ma bouche fermée. – chiccodoro