這個問題更多地是關於「爲什麼」。當您在連接字符串中指定DRIVER={SQL Server Native Client 11.0}
時,varchar(max)
列將返回空白。這個問題似乎多年來一直存在,並且存在一些解決方法。使用驅動程序{SQL SERVER}與Native Client有什麼區別
雖然似乎瘋了,這些問題依然存在,一個有效的解決辦法,建議通過:
https://stackoverflow.com/a/33883901/4258124
是改變連接字符串使用方法:
DRIVER={SQL Server}...(rest of connection string)
代替:
DRIVER={SQL Server Native Client 11.0} ...(rest of connection string)
我想這一點,和它的作品,但我的問題是更多的「爲什麼」。如果DRIVER={SQL SERVER}
是一個較舊的驅動程序,當我傳遞MultiSubnetFailover = Yes/True等新功能時它如何能夠連接?
我發現我已經安裝(Windows中,從odbcad32.exe的>驅動程序) 「SQL Server ODBC驅動程序11」(MSODBCSQL11.DLL月2014)和 「SQL服務器」(SQLSRV32.DLL日期爲2010年)。
在VBA或Python的Windows中,確實通過{SQL Server}
選擇了上面兩個更新的?在使用{SQL Server}
而不是{SQL Server Native Client 11.0}
時,是否會丟失任何功能?如果有,它們會是什麼?有更好的解決方法嗎?
您是否嘗試過使用DRIVER = {ODBC Driver 11 for SQL Server}?您似乎在說它已安裝,並且它會比SQL Server Native Client 11.0(SQLNCLI11.DLL,大約2012年)更新。 –
另外,驗證'pyodbc.version'返回'4.0.3'。 pyodbc已經有一些相當新的變化可以解決這個問題。 –
謝謝,我試過DRIVER = {ODBC Driver 11 for SQL Server},它也可以工作;而且我認爲更新的說法是有道理的,它會考慮到最新的功能,所以我不應該擔心它們之間的差異。仍然好奇,但我應該讓它去哈哈 – NikT