J'ai passé beaucoup de temps aujourd'hui à déboguer un problème similaire. J'avais défini la "version TDS" dans freetds.conf mais elle n'était pas utilisée dans ma connexion ODBC. Après avoir lu le code source de freetds (connectparams.c:odbc_parse_connect_string), j'ai découvert que :
- Si votre chaîne de connexion utilise "SERVER=" alors freetds.conf et odbc.ini sont ignorés
- Si votre chaîne de connexion utilise "SERVERNAME=", alors les paramètres du serveur freetds.conf approprié sont utilisés
- Si votre chaîne de connexion utilise "DSN=", les paramètres du DSN odbc.ini approprié sont utilisés
odbcinst.ini est un faux-fuyant. FreeTDS ne vérifie jamais ces paramètres.
Les paramètres que vous spécifiez dans la chaîne de connexion sont toujours respectés. Il respecte également toujours les variables d'environnement comme TDSVER.