2017-01-31 20 views
2

この質問は「なぜ」に関するものです。接続文字列にDRIVER={SQL Server Native Client 11.0}を指定すると、varchar(max)の列は空白で返されます。この問題は長年にわたり続くようであり、いくつかの回避策が存在します。ドライバ{SQL SERVER}とネイティブクライアントの相違点は何ですか?

https://connect.microsoft.com/SQLServer/feedback/details/419996/sql-native-client-returning-blank-fields-to-excel

https://connect.microsoft.com/SQLServer/feedback/details/467300/problem-with-varchar-max-via-sql-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のような新しい機能を渡すとどのように接続できますか?

odbcad32.exe>ドライバからの「windows」(MSDEBCSQL11.DLL、2014年のMSODBCSQL11.DLL)と「SQL Server」(SQLSRV32.DLL 2010年)がインストールされていることがわかりました。

WindowsでのVBAまたはPythonでは、上記の2つのうち新しい方を選択すると{SQL Server}が渡されますか? {SQL Server Native Client 11.0}より{SQL Server}を使用して機能が失われる可能性はありますか?そうであれば、どうなりますか?より良い回避策がありますか?

+1

'DRIVER = {SQL Server用ODBCドライバ11}'を使ってみましたか?インストールされており、SQL Serverネイティブクライアント11.0(SQLNCLI11.DLL、2012年頃以降)より新しいものであると思われるようです。 –

+0

また、 'pyodbc.version'が '4.0.3'を返すことを確認してください。この問題に対処する可能性のあるpyodbcにはかなり最近の変更がいくつかあります。 –

+0

ありがとう、私はDRIVER = {ODBC Driver 11 for SQL Server}を試しました。新しいものは最新の機能を考慮に入れて意味があるので、違いが何であるか心配する必要はありません。まだ興味がありますが、私はおそらくそれをhahaにしましょう。 – NikT

答えて

2

Windows上のVBAまたはPythonでは、{SQL Server}が上記2つのうちの新しいものを選択しますか?

{SQL Server}は、単にWindowsに付属する(非常に古い)SQL Serverドライバの名前です。それはまだ多くの場所で使用されていますが、SQL Serverの新しい機能をサポートしておらず、現在は長い間廃止されている可能性があります。

実際、{SQL Server Native Client ...}ドライバのファミリでは、{ODBC Driver __ for SQL Server}ドライバ(__は現在13または11のいずれか)が使用されています。

+1

ODBCドライバ11を使用して(最大)列のデータが返されることを確認しました。これは、ネイティブクライアントとSQL Serverドライバより新しいものです。それを使用して、ありがとう! – NikT

+2

PythonとSQL Serverで何かしているのであれば、11はかなり重大な問題(特にスレッディングに関する問題)があったため、11ではなくODBCドライバ13にアップグレードすることを強くお勧めします。例えば、Djangoのrunserverが11で動作するようにするには、 '--nothreading'ランタイムパラメータを使う必要がありました。 – FlipperPA

関連する問題