none
Publicar arquivo Excel no Banco de dados SQL Server 2005 RRS feed

  • Pergunta

  • Tenho uma planilha no Excel porem todos os dias é preciso inserir as informações dela numa tabela do banco de dados, gostaria de fazer uma aplicação em windows form que selecione este arquivo e publique diretamente na tabela essas informações é possivel???
    terça-feira, 22 de fevereiro de 2011 00:25

Todas as Respostas

  • Julio,

    Vc pode desenvolver um pacote DTSX e agendar a execução ou ainda usar o BCP para inportar estes dados... o DTSX te da mais flexibilidade....
    Este KB deve ajudar....

    http://support.microsoft.com/kb/321686/pt-br

    Att.
    Marcelo Fernandes


    MCP, MCDBA, MCSA, MCTS.
    Se útil, classifique!!!
    Me siga no twitter: @marcelodba

    terça-feira, 22 de fevereiro de 2011 13:11
  • Julio, veja se isso ajuda:

    http://mcflyamorim.wordpress.com/2008/04/22/ler-dados-de-um-arquivo-excel/

     

    É limitado, mas pode ser que te ajude.

    Abraços


    Fabiano Neves Amorim - MCTS / MCP - SQLServer - http://blogs.solidq.com/fabianosqlserver/
    terça-feira, 22 de fevereiro de 2011 19:21
  • voce pode acessar ela utilizando um linked server:

     

    EXEC master.dbo.sp_addlinkedserver @server = N'<NOME DO LINKED SERVER>', @srvproduct=N'Jet 4.0', @provider=N'Microsoft.Jet.OLEDB.4.0', @datasrc=N'C:\ARQUIVO.xls', @provstr=N'Excel 8.0';

    EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'<NOME DO LINKED SERVER>', @useself=N'False',@locallogin=NULL,@rmtuser=NULL,@rmtpassword=NULL;

    GO

    EXEC master.dbo.sp_serveroption @server=N'<NOME DO LINKED SERVER>', @optname=N'data access', @optvalue=N'true'

    GO

     

    Dessa forma você acessa o seu arquivo como se fosse um banco de dados, e como se cada tasheet fosse uma tabela, porém só funciona se ela não estiver com acesso exclusivo por nenhum outro programa, vale ressaltar que ao acessar as tabsheets, elas ganham um $(cifrão) no final do nome:

    select * from [<NOME DO LINKED SERVER>]...[<NOME DA TABSHEET>$];

    exemplo:

    select campo1, campo2 from MyLinkedServer...MySheet$;

    update MyLinkedServer...MySheet$ set campo1=null where campo2 is null;

    insert into MyLinkedServer...MySheet$ (campo1, campo2) values (1,1);

    delete from MyLinkedServer...MySheet$ where not campo1 is null;

     

    sexta-feira, 25 de fevereiro de 2011 12:39