Acesso ao CSV via ADO.net em 64 bits?
Pergunta
Em um aplicativo .NET de 32 bits, posso usar esta string de conexão OLEDB para conectar-se a um arquivo CSV via ADO.NET:
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\foo;"
ou este ODBC:
"Driver={{Microsoft Text Driver (*.txt; *.csv)}};Dbq=c:\foo"
No entanto, aparentemente existem versões de 64 bits dos drivers de jato OLEDB ou do driver de texto ODBC.
Eu poderia analisar a linha CSV por linha ou executar o aplicativo no modo de 32 bits, mas, idealmente, gostaria de encontrar um driver diferente que funcione como 64 bits.
Alguma ideia?
Solução
Não é um motorista, mas fiquei satisfeito com o leitor de CSV de Sebastien Lorion. Observe que nunca o usei em um ambiente de 64 bits, mas não estou ciente de nenhum problema de compatibilidade.
Outras dicas
Eu tive exatamente o mesmo problema e, depois de muita tentativa e erro, foi o que eu achei que funcionou:
1. Ativar procedimentos de adhoc
sp_configure 'show advanced options', 1;
RECONFIGURE;
GO
sp_configure 'Ad Hoc Distributed Queries', 1;
RECONFIGURE;
GO
2. Instale este arquivo no servidor:
3. Use este formato de consulta:
SELECT * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0','Text;Database=C:\SQL\;HDR=Yes;','SELECT * FROM [test.csv]');
4. Ativar procedimentos de automação OLE:
sp_configure 'show advanced options', 1;
GO
RECONFIGURE with override
GO
sp_configure 'Ole Automation Procedures', 1;
GO
RECONFIGURE with override;
GO
Alexis,
Você precisa de um motorista? Se você só precisar ler uma linha de arquivo CSV por linha, há vários analisadores gratuitos por aí. Se você também precisar escrever um check -out de CSV FileHelpers.
Acabei tendo que converter meu aplicativo em 32 bits porque estava tendo o mesmo problema, embora com o acesso a um banco de dados de acesso ao Microsoft. Eu sei que isso vai funcionar, mas você pode não querer esta solução. Se alguém souber a resposta para essa pergunta, eu adoraria ouvi -la também.
Você está com sorte-em dezembro de 2010, a Microsoft publicou o driver OLEDB AA de 64 bits para arquivos CSV e XLSX!
Ver esta resposta Para links para download, instale detalhes, strings de conexão, etc.