4

我尝试从 Ubuntu 中的 ROR 应用程序连接到 SQL Server。为此,我做了以下事情。

我在我的 Ubuntu 10.04 中安装了以下库

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

安装这些之后,我创建了 dsn 并在 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 建立连接。那正确吗?

请指导我

谢谢,尼奥

4

2 回答 2

1

freetds.conf 允许您指定要使用的 TDS 协议版本。只需在您为服务器添加tds version = 8.0的部分或部分下添加一个。[global]如果未指定,则默认为 5.0 版,这似乎是您的情况。有关更多信息,请查看http://www.freetds.org/userguide/freetdsconf.htm

于 2010-12-09T17:49:10.937 回答
0

我意识到这不是您具体问题的答案,但这是我上次尝试从 Linux 转到 SQL Server 时的一些建议。那是在 2009 年,所以从那以后可能发生了一些变化。

无论如何,我们遇到了很多麻烦,我们放弃了并决定使用 JRuby。

使用activerecord-jdbc-adapter只需很少的努力就可以建立和运行连接,而且我们在兼容性方面没有遇到任何问题。(我收回这一点,我必须解决一个问题,即我们从没有主键、标识列或名为“id”的列的表中选择 mssql 中的有限行

过去我已经能够让它像您尝试的那样工作,但它总是比我必须通过 JRuby 付出更多的努力。

于 2011-04-06T13:13:10.770 回答