O que é o OPENDATASOURCE e para que serve?
É uma função disponível no SQL Server que pode ser utilizada para acessar dados remotos utilizando drives de conexão.
Com a função opendatasource você pode executar um comando SQL em uma planilha Excel, arquivo texto, Access e assim vai.
Torna-se possível fazer um relacionamento (join) como, por exemplo, uma tabela do seu bd com uma sheet do seu arquivo Excel.
Listagem 1: Usando a função OPENDATASOURCE para acessar um servidor SQL remoto
SELECT * FROM
OPENROWSET(‘SQLOLEDB’,‘SERVIDOR SQL’;
‘USUARIO SQL ‘;
‘SENHA SQL ‘,
‘SELECT * FROM
BANCO..TABELA’)
Listagem 2: Usando a função OPENDATASOURCE para acessar uma planilha Excel
SELECT * FROM
OPENDATASOURCE(‘MICROSOFT.ACE.OLEDB.12.0',
‘DATA SOURCE=\\CAMINHO\PLANILHA.XLS
;EXTENDED
PROPERTIES=EXCEL 12.0
’)…[PLAN1$]
Dicas: Utilizar sempre um compartilhamento de rede, colocar entre colchetes o nome da aba/sheet seguido de $ (dólar)
Temos um problema com a Função OPENDATASOURCE
Usando a função OPENDATASOURCE para acessar arquivo Excel com SQL 64Bits
Você só vai conseguir utilizar o driver ace.oledb e em alguns casos também é necessário instalar no servidor um pacote com o driver.
Link: http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=13255
instalando o componente acima você terá suporte para as conexões com as seguintes extensões (*.xls, *.xlsx, and *.xlsb, *.mdb and *.accdb)
Assim finalizo este artigo, até um próximo.