Spędziłem dzisiaj dużo czasu na debugowaniu podobnego problemu. Ustawiłem „wersja TDS” w freetds.conf, ale nie był używany w moim połączeniu ODBC. Po przeczytaniu kodu źródłowego freetds (connectparams.c:odbc_parse_connect_string) odkryłem, że:
- Jeśli w ciągu połączenia używane jest „SERVER=”, oba pliki freetds.conf i odbc.ini są ignorowane
- Jeśli w ciągu połączenia używane jest „NAZWA SERWERA=”, używane są ustawienia na odpowiednim serwerze freetds.conf
- Jeśli w ciągu połączenia używane jest „DSN=”, używane są ustawienia w odpowiednim DSN odbc.ini
odbcinst.ini to czerwony śledź. FreeTDS nigdy nie sprawdza tego pod kątem ustawień.
Ustawienia określone w ciągu połączenia są zawsze szanowane. Zawsze szanuje również zmienne środowiskowe, takie jak TDSVER.