Frequentemente precisamos fazer exportações de dados para o excel. É claro que podemos fazer essas exportações utilizando o DTS ou o atual SSIS. Mas que tal fazer a exportação utilizando uma instrução SQL, mais fácil de ser disparada do que os pacotes de exportação ?
A função OpenRowSet permite que sejam feitos acessos a outros bancos de dados mesmo que estes não estejam cadastrados como linked servers. Funciona como um linked server inline.
Desta forma podemos fazer uma exportação para o excel em uma única instrução, veja :
1 2 3 4 | INSERT INTO OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;Database=C:\teste.xls;User=Admin;Password=', 'SELECT ID, Empresa FROM [Sheet1$]') SELECT customerid,companyname FROM customers |
Algumas observações :
A planilha do excel (no exemplo teste.xls) tem que já existir com os cabeçalhos de campo, do contrário ocorre um erro
Permissões no diretório temporário do usuário do serviço do sql server/sql server agent são necessárias. Os seguintes links ajudam no caso de ocorrerem erros estranhos : http://support.microsoft.com/kb/814398/en-us e http://support.microsoft.com/kb/296711/EN-US/
Abraços
Tomás Vásquez
http://www.tomasvasquez.com.br
Fonte: http://www.bufaloinfo.com.br/
Olá, gostaria de saber se há possibilidade de fazer uma instrução sql só que ao invés de exportar para o exel, o próprio importe para o sql. Obrigada.
Tahbata,
O processo é quase o mesmo, só que ao contrário:
http://support.microsoft.com/kb/321686/pt-br
Abraços
Tomás
boas,estou a desenvolver uma aplicação windows usando c# e precisava de fazer um export de sql para sql, só que sou novo em c#. você nao tem um exemplo que tenhga a funcionar?
a instrução que tem em cima posso usá-la em code behind? se sim, tenho que usar um OleDbCommand ou OleDbAdapter?
Luis,
Perfeitamente. No DbCommand, basta definir o CommandText que deseja enviar para o banco de dados, definar o CommandType como Text e utilizar o método Execute.
Não tem erro.
Se precisar de mais alguma ajuda, vamos para o fórum:
http://www.tomasvasquez.com.br/forum
Abraços
Tomás
Olá boa noite!!!
Gostaria de motar um programinha sobre cadastro de Operadores de Empilhadeira, os dados que preciso:
Chapa do Operador:
Nome do Operador:
Equipamento: (Empilhadeira ou Paleteira)
Cepi:
Ramal:
Vencimento Atestado:
N CNH:
Vencimento CNH:
Area:
Cargo/Setor:
Turno:
E local para Foto:
Sera que poderia me ajudar? como consigo ?
Grato
Seolin,
Se quiser ajuda para montar por conta:
http://www.tomasvasquez.com.br/forum
Se quiser uma prestação de serviço:
webmaster@tomasvasquez.com.br
Abraços
Tomás