Подключение к SQL Server 2005 из приложения ROR в Ubuntu

Я попытался подключиться к SQL Server из приложения ROR в Ubuntu. Для этого я сделал следующие вещи.

Я установил следующие библиотеки в свой Ubuntu 10.04.

  • unixodbc
  • unixodbc-dev
  • freetds-dev
  • 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. Это правильно?

Пожалуйста, направь меня

Спасибо, Нео


person Neo    schedule 09.12.2010    source источник
comment
Да, знаю. Но моя текущая ситуация требует подключения к sqlserver.   -  person Neo    schedule 09.12.2010


Ответы (2)


freetds.conf позволяет указать, какую версию протокола TDS вы хотите использовать. Просто добавьте tds version = 8.0 в раздел [global] или раздел, который вы добавили для своего сервера. Если не указано, по умолчанию используется версия 5.0, что, по-видимому, и есть ваш случай. Для получения дополнительной информации см. http://www.freetds.org/userguide/freetdsconf.htm

person Teoulas    schedule 09.12.2010
comment
Я тоже это сделал. Я добавил версию tds = 8.0 в разделе моего сервера (не на глобальном уровне). Но все же он говорит, что версия TDS равна 5, когда я запускаю эту команду tsql -C - person Neo; 09.12.2010

Я понимаю, что это не ответ на ваш конкретный вопрос, но это совет, который я дал в прошлый раз, когда я пытался перейти с Linux на SQL Server. Это было в 2009 году, возможно, с тех пор что-то изменилось.

В любом случае, у нас было так много проблем с этим, что мы сдались и решили использовать JRuby.

В результате было очень мало усилий, чтобы установить и запустить соединение с помощью activerecord-jdbc-adapter. и мы не столкнулись с проблемами совместимости. (Я беру свои слова обратно, была одна проблема, которую я должен был решить, когда мы выбирали ограниченные строки в mssql из таблицы без первичного ключа, столбца идентификаторов или столбца с именем "id")

Раньше мне удавалось заставить его работать так, как вы пытаетесь, но это всегда требовало гораздо больше усилий, чем мне приходилось делать с JRuby.

person Sammy Larbi    schedule 06.04.2011
comment
Я думаю, читая комментарий Нео от 9 декабря 2010 года - Да, я знаю. Но моя текущая ситуация требует подключения к sqlserver. - Ваш ответ не очень поможет... - person chiccodoro; 07.04.2011
comment
Я говорил (возможно, неясно), что мне было проще подключить Rails к SQL Server (когда Ruby работает в Linux или MacOS) с помощью JRuby, чем с помощью MRI. Что я неправильно понял? - person Sammy Larbi; 07.04.2011
comment
Я вижу, извините за это. Я буду держать рот на замке. - person chiccodoro; 07.04.2011