Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

freeTDS n'utilise pas sa configuration

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.