Я создал freetds 0.82 из macports, используя вариант + mssql (который устанавливает dblib и устанавливает версию tds по умолчанию на 8.0). Сейчас я пытаюсь подключиться к своему серверу базы данных (MSSQL Server 2005) с помощью tsql, но он работает только тогда, когда я заменяю версию tds на 4.2. Если я установлю любое другое значение, я получу следующий вывод ошибки.
> TDSVER=8.0 tsql -h <host> -p <port> -U <user> -P<password>
locale is "en_US.utf-8"
locale charset is "utf-8"
Msg 20017, Level 9, State -1, Server OpenClient, Line -1
Unexpected EOF from the server
Msg 20002, Level 9, State -1, Server OpenClient, Line -1
Adaptive Server connection failed
There was a problem connecting to the server
Если я использую TDSVER = 4.2, он работает нормально. Кто-нибудь знает, как это решить?
Нашел ответ здесь: http://jonkinney.com/articles/2009/11/23/change-locale-on-os-x-snow-leopard-for-freetds-functionality
Проблема заключалась в том, что для моей кодировки локали необходимо было установить UTF-8.
export LC_ALL=en_US.UTF-8
После этого я смог подключиться с версией 8.0 протокола TDS.