Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

freeTDS verwendet seine Konfiguration nicht

Ich habe heute eine lange Zeit damit verbracht, ein ähnliches Problem zu debuggen. Ich hatte "TDS-Version" in freetds.conf eingestellt, aber es wurde nicht in meiner ODBC-Verbindung verwendet. Nachdem ich den Freetds-Quellcode (connectparams.c:odbc_parse_connect_string) gelesen hatte, entdeckte ich Folgendes:

  • Wenn Ihre Verbindungszeichenfolge "SERVER=" verwendet, werden sowohl freetds.conf als auch odbc.ini ignoriert
  • Wenn Ihre Verbindungszeichenfolge "SERVERNAME=" verwendet, werden die Einstellungen im entsprechenden freetds.conf-Server verwendet
  • Wenn Ihre Verbindungszeichenfolge "DSN=" verwendet, werden die Einstellungen im entsprechenden odbc.ini-DSN verwendet

odbcinst.ini ist ein Ablenkungsmanöver. FreeTDS prüft das nie auf Einstellungen.

Die Einstellungen, die Sie in der Verbindungszeichenfolge angeben werden immer respektiert. Es respektiert auch immer die Umgebungsvariablen wie TDSVER.