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?

Foi útil?

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.

http://www.codeproject.com/kb/database/csvreader.aspx

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:

http://www.microsoft.com/downloads/en/details.aspx?familyid=c06b8369-60dd-4b64-a44b-84b371ed16d&displaylang=en

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top