64ビットのADO.NETを介したCSVアクセス?
質問
32ビットの.NETアプリでは、このOLEDB接続文字列を使用して、ADO.NET経由でCSVファイルに接続できます。
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\foo;"
またはこのODBC:
"Driver={{Microsoft Text Driver (*.txt; *.csv)}};Dbq=c:\foo"
ただし、OLEDB JetドライバーまたはODBCテキストドライバーのいずれかが64ビットバージョンではないようです。
CSVを1行ずつ解析するか、32ビットモードでアプリを実行できますが、理想的には64ビットとして実行される別のドライバーを見つけたいです。
アイデアはありますか
解決
これはドライバーではありませんが、Sebastien LorionのCSVリーダーには満足しています。 64ビット環境で使用したことはありませんが、互換性の問題は認識していません。
他のヒント
これとまったく同じ問題があり、多くの試行錯誤の後、エラーこれは私が見つけたものでした:
1。アドホックプロシージャを有効にする
sp_configure 'show advanced options', 1;
RECONFIGURE;
GO
sp_configure 'Ad Hoc Distributed Queries', 1;
RECONFIGURE;
GO
2。このファイルをサーバーにインストールします:
3。次のクエリ形式を使用します:
SELECT * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0','Text;Database=C:\SQL\;HDR=Yes;','SELECT * FROM [test.csv]');
4。 OLEオートメーションプロシージャを有効にします。
sp_configure 'show advanced options', 1;
GO
RECONFIGURE with override
GO
sp_configure 'Ole Automation Procedures', 1;
GO
RECONFIGURE with override;
GO
アレクシス、
ドライバーが必要ですか? CSVファイルを1行ずつ読み取る必要がある場合は、無料のパーサーがいくつかあります。 CSVも書き出す必要がある場合は、 FileHelpers をご覧ください。
Microsoft Accessデータベースにアクセスしているにもかかわらず、同じ問題を抱えていたため、アプリケーションを32ビットに変換しなければならなくなりました。私はこれがうまくいくことを知っていますが、あなたはこの解決策を望まないかもしれません。誰かがこの質問の答えを知っているなら、私もそれを聞くのが大好きです。
幸運です。2010年12月に、MicrosoftはCSVおよびXLSXファイル用の64ビットOLEDBドライバーを公開しました。
ダウンロードリンク、インストールの詳細、接続については、この回答をご覧ください文字列など