Alguém pode explicar a mágica do Opendatasource / Openrowset?

8

Ao extrair informações de um arquivo excel (ou banco de dados ms-access), normalmente uso algo como isto:

SELECT *
 FROM OPENDATASOURCE('Microsoft.ACE.OLEDB.12.0',
 'Data Source=C:\test.xls;Extended Properties=''EXCEL 12.0;HDR=NO;IMEX=1'' ')...[Sheet1$]

Às vezes funciona. Às vezes não.

Alguém conhece um guia para configurar isso?

Conheço a pasta temp, conheço o download dos drivers corretos, conheço as propriedades estendidas, conheço o fato de não ter o arquivo aberto. Às vezes, porém, eu ainda recebo o -

O provedor OLE DB "Microsoft.ACE.OLEDB.12.0" para servidor vinculado "(nulo)" retornou a mensagem "Erro não especificado".

Encontrei este problema ontem. Eu reiniciei minha máquina - não funcionou. Então reiniciei minha instância novamente e P00f! Magicamente funcionou.

Portanto, essa é minha pergunta - ao receber o "erro não especificado", o que você precisa verificar para garantir que todas as estrelas estejam alinhadas para que isso funcione.

SqlSandwiches
fonte

Respostas:

2

Verifique o Windows Event Viewer. Procure nos logs de aplicativos, de segurança e de sistema. Se você acertou todas as coisas óbvias (e parece que você tem), pode ser qualquer coisa. A pasta do arquivo pode ter segurança de domínio do Windows, e sua máquina pode não conseguir se autenticar no controlador de domínio, por exemplo.

Brent Ozar
fonte