Boa tarde Gurus, OpenEdge 10.2B HPUX Gostaria de saber como faço para carregar vários arquivos .d para dentro de um banco de dados. O problema é que nestes arquivos .d vários registros podem já existir na base de dados então seria importante validar cada linha antes de fazer o create. O ideal para min seria que fosse gerada uma lista de tudo que existe para ser carregado e a carga ocorresse sem a interação de usuário, ou seja sem que o usuário tenha que informar o nome de cada arquivo .d e cada tabela. Qualquer ajuda ou ideia será bem vinda. Obrigado, Joni
faz um import para uma temp-table, que é like a tabela do banco, e dai vc faz um for each na temp-table e depois um find na tabela do banco, se não existir, create e buffer-copy
A ideia é boa, mas não é isto exatamente que preciso, gostaria de um programa simples 4GL mesmo pois será um usuário que ira realizar esta carga e ele deverá informa arquivo por arquivo.
mas a logica é a mesma, não tem como ser mais simples que isso, o usuario indica o arquivo, vc importa os dados usando input from e import, jogando em uma temp-table, que é like a tabela do banco, dai vc procura na tabela do banco se existe os registros que estão na temp-table, se não, vc grava na tabela
Este é o código que o bootstrapmaster falou: "tt-fornecedor" é a temp-table, e "fornecedor" é a tabela do banco. Código: def temp-table tt-fornecedor no-undo like fornecedor. input from value("c:\tmp\arquivo.d") no-convert. repeat: create tt-fornecedor. import tt-fornecedor. end. input close. for each tt-fornecedor: find first fornecedor no-lock where fornecedor.cd-fornecedor = tt-fornecedor.cd-fornecedor no-error. if avail fornecedor then next. create fornecedor. buffer-copy tt-fornecedor to fornecedor. end.