CSV доступ через ADO.NET в 64-битной? - PullRequest
4 голосов
/ 12 января 2009

В 32-разрядном приложении .NET я могу использовать эту строку подключения OLEDB для подключения к CSV-файлу через ADO.NET:

.
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\foo;"

или этот ODBC один:

"Driver={{Microsoft Text Driver (*.txt; *.csv)}};Dbq=c:\foo"

Однако 64-разрядных версий драйверов OLEDB Jet или текстового драйвера ODBC явно не существует.

Я мог бы построчно анализировать CSV или запускать приложение в 32-битном режиме, но в идеале я просто хотел бы найти другой драйвер, который работает как 64-битный.

Есть идеи?

Ответы [ 5 ]

2 голосов
/ 08 июня 2011

У меня была точно такая же проблема, и после долгих проб и ошибок я обнаружил, что сработало:

1. Включить Adhoc процедуры

sp_configure 'show advanced options', 1;
RECONFIGURE;
GO
sp_configure 'Ad Hoc Distributed Queries', 1;
RECONFIGURE;
GO

2. Установите этот файл на сервер:

http://www.microsoft.com/downloads/en/details.aspx?familyid=C06B8369-60DD-4B64-A44B-84B371EDE16D&displaylang=en

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
1 голос
/ 12 января 2009

Alexis

Тебе вообще нужен драйвер? Если вам просто нужно построчно прочитать файл CSV, есть несколько бесплатных анализаторов. Если вам нужно также выписать CSV, проверьте FileHelpers .

1 голос
/ 12 января 2009

Это не водитель, но я доволен CSV-ридером Себастьяна Лориона. Обратите внимание, что я никогда не использовал его в 64-битной среде, но я не знаю о каких-либо проблемах совместимости.

http://www.codeproject.com/KB/database/CsvReader.aspx

0 голосов
/ 08 февраля 2011

Вам повезло - в декабре 2010 года Microsoft опубликовала 64-битный драйвер OLEDB для файлов CSV и XLSX!

См. этот ответ для ссылок на скачивание, сведений об установке, строк подключения и т. Д.

0 голосов
/ 12 января 2009

Мне пришлось преобразовать свое приложение в 32-разрядное, потому что у меня возникла та же проблема, но с доступом к базе данных Microsoft Access. Я знаю, что это сработает, но вы можете не захотеть этого решения. Если кто-нибудь знает ответ на этот вопрос, я бы тоже хотел его услышать.

...