none
importar arquivos .dbf no Sql Server 2005 express (SOCORRO URGENTE!!!!) RRS feed

  • Pergunta

  • Olá Galera!

    Desenvolvi um programa para um cliente meu onde ele tem uns mil clientes cadastrados... ele esta me pedindo para eu fazer a importação do programa antigo dele para o que eu desenvolvi conforme suas necessidades, bom, o banco do sistema dele é em .DBF e até consegui converter ele para excel e tambem para .sql , mas eu nao faço idéia de como fazer essa inclusao no banco sql 2005 express com esses dados já cadastrados em .dbf ou convertidos pois tentei ler esses dados com o sql e não consegui. preciso muito da ajuda de vcs galera! pois o projeto está quase pronto e praticamente só falta isso para eu entregar o mesmo. Se alguem puder postar um exemplo fcarei muito agradecido e será muito ÚTIL mesmo para o fórum. Conto a a sua ajuda!

     

    Grande Abraço

    Gilson

    • Movido Gustavo Maia Aguiar terça-feira, 24 de novembro de 2009 12:07 (De:SQL Server - Desenvolvimento Geral)
    domingo, 22 de novembro de 2009 22:45

Respostas

  • Não... Ctrl+C, Ctrl+V mesmo!!!

    Eu faço assim:
    Abro o DBF com o Excel
    Faço a limpeza de dados e ordenaçao da colunas para que tenha a mesma estrutura da tabela no SQL
    Insiro uma coluna a esquerda (essa fica em branco). Por exemplo. Se seu dbf tem 5 campos, logo apos abri com o excel ele tera 5 colunas (a,b,c,d,e). Eu insiro mais uma, fica (a,b,c,d,e,f)
    Seleciono o bloco, menos a primeira linha (essa tem o cabeçalho)
    Abro o SQL Server Management Studio e peço para mostrar os dados da tablela que vou colar (geralmente ela esta vazia)
    Como o excel esta com a mesma estrutura da tabela no sql, a copia é feita diretamente.

    Eu uso isso para popular as tabelas para teste. É muito mais facil criar uma tabela no excel, do que no SQL, e mesmo usando TSQL. Meu sonho é ter uma mini instancia do excel dentro do SSMS... vai facilitar o trabalho...


    Att

    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    SOGI INFORMATIQUE LTÉE (http://www.sogi.com)
    segunda-feira, 23 de novembro de 2009 03:34

Todas as Respostas

  • Vc pode usar o SSIS, que vem junto com o pacote Sql Server Express Advanced Services.
    http://msdn.microsoft.com/fr-fr/library/ms141026.aspx

    Mas sinceramente, se for só uma vez e se for menos de 10 mil registros, abre no excel, faça o tratamento que vc quiser (por exemplo, normalizar o código do cliente) e cole no SQL.

    Vai ser bem mais rapido

    att


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    SOGI INFORMATIQUE LTÉE (http://www.sogi.com)
    domingo, 22 de novembro de 2009 23:54
  • Boa William!


    Vou tentar fazer isso! olha só... estou abrindo o banco .dbf em um programinha onde posso editar os dados em dbf , mas como eu faria para colar os dados no sql??? seria através do vs ?


    Abraço William

    Gilson

    segunda-feira, 23 de novembro de 2009 00:15
  • Não... Ctrl+C, Ctrl+V mesmo!!!

    Eu faço assim:
    Abro o DBF com o Excel
    Faço a limpeza de dados e ordenaçao da colunas para que tenha a mesma estrutura da tabela no SQL
    Insiro uma coluna a esquerda (essa fica em branco). Por exemplo. Se seu dbf tem 5 campos, logo apos abri com o excel ele tera 5 colunas (a,b,c,d,e). Eu insiro mais uma, fica (a,b,c,d,e,f)
    Seleciono o bloco, menos a primeira linha (essa tem o cabeçalho)
    Abro o SQL Server Management Studio e peço para mostrar os dados da tablela que vou colar (geralmente ela esta vazia)
    Como o excel esta com a mesma estrutura da tabela no sql, a copia é feita diretamente.

    Eu uso isso para popular as tabelas para teste. É muito mais facil criar uma tabela no excel, do que no SQL, e mesmo usando TSQL. Meu sonho é ter uma mini instancia do excel dentro do SSMS... vai facilitar o trabalho...


    Att

    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    SOGI INFORMATIQUE LTÉE (http://www.sogi.com)
    segunda-feira, 23 de novembro de 2009 03:34
  • Boa Noite,

    O uso do SSIS é uma ótima saída para resolver esse problema, mas vale a pena lembrar que o Express 2005 não possui SSIS (mesmo o Advanced Series). Maiores detalhes no link abaixo:

    http://www.microsoft.com/sql/prodinfo/features/compare-features.mspx?PHPSESSID=0324345d45ef1bf1f764044e03584cd0

    Acho que usar o CTRL + C e CTRL + V é de fato a saída mais rápida nesse caso.

    [ ]s,

    Gustavo Maia Aguiar
    http://gustavomaiaaguiar.spaces.live.com

    A Impedância, o Mapeamento Objeto Relacional e Implementações – Parte II
    http://gustavomaiaaguiar.spaces.live.com/blog/cns!F4F5C630410B9865!814.entry
    Classifique as respostas. O seu feedback é imprescindível
    segunda-feira, 23 de novembro de 2009 03:44
  • É verdade... tinha me esquecido disso. Uso o SQL 2008 na maquina de teste e vi que isso existe lá (au menos uma versão mais simplificadao do SSIS).

    Fica a saida do copiar colar... outra saia menos nobre, é transformar o DBF em CSV e utilizar o bulk insert...

    Att

    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    SOGI INFORMATIQUE LTÉE (http://www.sogi.com)
    segunda-feira, 23 de novembro de 2009 04:18
  • Galera,

    me surgiu outro problema com esses dados do meu cliente, além de ele querer que eu importe os clientes cadastrados no dbf, ele tbm quer que eu coloque junto quanto o cliente está devendo... sendo que os valores se encontram no arquivo caixa_receber.dbf, vcs poderiam me dar uma dica de como eu poderia fazer isso??

    Muito obrigado desde ja pela ajuda!

    Abraço
    Gilson
    terça-feira, 24 de novembro de 2009 01:37
  • Mesma coisa. Abra com o Excel, limpe os dados, e cole no SQL. Se sua tabela, que trata dessa parte, for muito diferente estruturalmente, eu sugiro criar uma tabela com a mesma estrutura do DBF e depois. Cole os dados e depois faça as queries de tratamento.

    É isso.

    att

    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    SOGI INFORMATIQUE LTÉE (http://www.sogi.com)
    terça-feira, 24 de novembro de 2009 02:02
  • Olá William,

    Meu amigao que ja me ajudou muito... me desculpa a minha falta de conhecimento, pois eutou começando com vb.net ,  eu baixei o SQL Server Management Studio para sql server 2005, mas não eu estou conseguindo fazer o attach no meu banco, quando eu clico em add ele me  dá um erro assim: TITLE: Microsoft SQL Server Management Studio Express
    ------------------------------

    Failed to retrieve data for this request. (Microsoft.SqlServer.Express.SmoEnum)

    For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&LinkId=20476

    ------------------------------
    ADDITIONAL INFORMATION:

    An exception occurred while executing a Transact-SQL statement or batch. (Microsoft.SqlServer.Express.ConnectionInfo)

    ------------------------------

    O principal do servidor "Gilson-PC\Gilson" não pode acessar o banco de dados "model" no contexto de segurança atual. (Microsoft SQL Server, Error: 916)

    For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=09.00.4035&EvtSrc=MSSQLServer&EvtID=916&LinkId=20476

    ------------------------------
    BUTTONS:

    OK
    ------------------------------


    Vc saberia me dizer pq nao consigo abrir o arquivo mdf por esse caminho? esta certo como estou fazendo?

     

    Abraço

    Gilson

    quarta-feira, 25 de novembro de 2009 00:59
  • Olá William,

    Consegui resolver,  instalei o management no windows xp e funcionou... tbm consegui inserir as tabelas direitinho! nem sei como lhe agradecer mais um vez!  MUITO OBRIGADO MESMO!!!


    Abraço
    Gilson Dias
    quarta-feira, 25 de novembro de 2009 14:16