Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

freeTDS non usa la sua configurazione

Ho passato molto tempo oggi a eseguire il debug di un problema simile. Avevo impostato "versione TDS" in freetds.conf ma non veniva utilizzato nella mia connessione ODBC. Dopo aver letto il codice sorgente di freetds (connectparams.c:odbc_parse_connect_string) ho scoperto che:

  • Se la stringa di connessione utilizza "SERVER=" allora sia freetds.conf che odbc.ini vengono ignorati
  • Se la stringa di connessione utilizza "SERVERNAME=", vengono utilizzate le impostazioni nel server freetds.conf appropriato
  • Se la stringa di connessione utilizza "DSN=", vengono utilizzate le impostazioni nel DSN odbc.ini appropriato

odbcinst.ini è una falsa pista. FreeTDS non controlla mai le impostazioni.

Le impostazioni che specifichi nella stringa di connessione sono sempre rispettati. Rispetta sempre anche le variabili d'ambiente come TDSVER.