1

csvファイルをインポートするために次のクエリを実行しています。

SELECT * FROM OPENROWSET('MSDASQL', 'Driver={Microsoft Text Driver (*.txt; *.csv)};DBQ=D:\Documents\;', 'SELECT * from file.csv') AS something

このエラーが発生します:

OLE DB provider "MSDASQL" for linked server "(null)" returned message "[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified".
Msg 7303, Level 16, State 1, Line 1
Cannot initialize the data source object of OLE DB provider "MSDASQL" for linked server "(null)".

これは私が問題を解決するために行ったことですが、どちらも十分ではありませんでした:

  1. MsSQLとIISは、問題のフォルダーとファイルにアクセスできます。また、どちらもSQLサーバーが実行されているネットワークサービスの一時フォルダーにアクセスできます。
  2. sp_configureを使用してアドホック分散クエリを有効にしました
  3. レジストリキーDisallowAdhocAccessを0に設定して修正しました
  4. Microsoft Access DatabaseEngine2010再頒布可能パッケージをインストールしました

システムはSQLServer2012Expressを実行しているWindows2008Serverですが、この問題はSQLServer2008でも再現されています。

この時点で、ランダムなアイデアを歓迎します:)。ありがとう!

4

2 に答える 2

2

答えは非常に単純であることが判明しましたが、文書化されていないことが非常に多く、MSDASQL ドライバーは SQL Server の 64 ビット インストールとうまく連携しませんでした。

このスレッドにはこれに関する詳細情報がありますが、私の目的では、32 ビット インスタンスへの「ダウングレード」で十分な解決策でした。

于 2013-01-08T01:26:14.807 に答える