मैंने आज इसी तरह की समस्या को डीबग करने में काफी समय बिताया। मैंने freetds.conf में "TDS संस्करण" सेट किया था लेकिन मेरे ODBC कनेक्शन में इसका उपयोग नहीं किया जा रहा था। फ़्रीटड्स सोर्स कोड (connectparams.c:odbc_parse_connect_string) पढ़ने के बाद मैंने पाया कि:
- यदि आपकी कनेक्शन स्ट्रिंग "SERVER=" का उपयोग करती है तो freetds.conf और odbc.ini दोनों को अनदेखा कर दिया जाता है
- यदि आपकी कनेक्शन स्ट्रिंग "SERVERNAME=" का उपयोग करती है तो उपयुक्त freetds.conf सर्वर में सेटिंग्स का उपयोग किया जाता है
- यदि आपकी कनेक्शन स्ट्रिंग "DSN=" का उपयोग करती है तो उपयुक्त odbc.ini DSN में सेटिंग्स का उपयोग किया जाता है
odbcinst.ini एक लाल हेरिंग है। FreeTDS कभी भी सेटिंग के लिए इसकी जांच नहीं करता है।
आपके द्वारा निर्दिष्ट सेटिंग्स कनेक्शन स्ट्रिंग में हमेशा सम्मान किया जाता है। यह हमेशा TDSVER जैसे पर्यावरण चर का भी सम्मान करता है।