2010-12-09 130 views
4

我試圖從Ubuntu的ROR應用程序連接到SQL Server。爲此,我做了以下事情。從Ubuntu的ROR應用程序連接到SQL Server 2005

我安裝了下列庫在我的Ubuntu 10.04

  • 的unixODBC
  • 的unixODBC-dev的
  • freetds的-dev的
  • libdbd-ODBC - 紅寶石
  • tdsodbc

安裝完這些之後,我創建了dsn並創建了所需的cha在odbc.ini和freetds.conf文件中。

然後,我使用 「TSQL」 像下面

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

對於這個命令,我收到以下錯誤

Adaptive Server is unavailable

我也查了freetds的測試連接登錄;它說「連接超時」。

我確信我們在SQL Server端的配置(遠程)很好。

當我運行tsql -C它是說TDS版本是5.我不知道它是如何說TDS 5,因爲我安裝了最新的FreeTDS版本。我不知道如何更新我的TDS版本。

僅供參考,我聽說TDS版本5不能用於與SQL Server建立連接。是對的嗎?

請指引我

感謝, 新

+0

是的,我知道。但我目前的情況需要sqlserver連接。 – Neo 2010-12-09 17:26:03

回答

1

freetds.conf允許您指定要使用的TDS協議的版本。只需在[global]部分或您爲服務器添加的部分下添加tds version = 8.0即可。如果未指定,則默認爲版本5.0,這似乎是您的情況。欲瞭解更多信息,請看http://www.freetds.org/userguide/freetdsconf.htm

+0

我也是這樣做的。我在我的服務器部分(不是全局級別)下添加了「tds version = 8.0」。但仍然說它的TDS版本是5當我運行此命令「tsql -C」 – Neo 2010-12-09 18:14:27

0

我意識到這不是對您的具體問題的回答,但它是上次嘗試從Linux遷移到SQL Server時的一些建議。這是在2009年,所以有可能從那時起有所改變。

無論如何,我們放棄了這麼多麻煩,決定使用JRuby。

它導致很少的努力使用activerecord-jdbc-adapter啓動並運行連接,並且我們已經遇到兼容性問題。 (我回來了,有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"

我已經能夠讓它在過去像你正在嘗試的那樣工作,但它總是比我必須經歷的更多的努力與JRuby 。

+0

我想,閱讀Neo的評論從10年9月10日 - 「是的,我知道,但我目前的情況需要sqlserver連接。 - 您的答案不會很有幫助... – chiccodoro 2011-04-07 07:07:38