Importar e exportar no FIreBird
20/03/2006
0
gostaria de uma ajuda a respeito da importação de informações
de tabelas do FireBird.
o negócio é o seguinte:
fiz a exportação de informações de uma tabela do firebird para
arquivo em disquete, até aí tudo bem.
depois fiz a importação dessas informações que não tive
nehuma dificuldade, porém, se não houvesse a o problema de
duplicidade dessas informações.
seria a situação em que o usuário importasse várias vezes
essas informações ocasionando duplicidade na tabela.
gostaria de saber como faço para chegar as informações antes
de serem importadas definitivamente, assim,
impedir a duplicidade das informações importadas.
Carlosceuma
Posts
20/03/2006
Edilcimar
1) total, onde todo o banco de dados é recuperado e tudo é substituído pelo antigo
2) parcial onde apenas aquilo que é desejado é substituído, este tipo é mais complicado pois vc deve dar ao usuário a possibilidade de escolher aquilo de deverá ser substituído, porém deverá ter em mente a probabilidade do cliente escolher ´coisa errada´, ou seja deverá fazer uma rotina onde a substituição de algo já existente deve ser muito bem analisada, neste caso deverá impedir a duplicidade de dados, porém haverá a possibilidade de substituição de dados verdadeiros por dados falsos
21/03/2006
Paullsoftware
eu faço todos os dias a importação/checagem de mais/menos 20000 registros de uma tabela de clientes, isso, pq o outro programador aqui da empresa resolveu colocar a informação Devedor na tabela do cadastro de clientes, então, o que eu faço é o seguinte:
:arrow: :arrow: :arrow:
Var Registros: TStringList; ListaCampos: TStringList; j: Integer ; vUpDate : Boolean; Const Enter_ = #13 + 10; begin ....
Carrego os dados a serem importados em uma StringList :!: :!: :!:
Registros := TStringList.Create; ListaCampos := TStringList.Create; Registros.LoadFromFile(NomeArquivo);
faço uma pesquisa na minha tabela para ver se o registro já existe na tabela e... :idea: :idea:
if ListaCampos[0] <> ´´ then begin TITULAR.Close; TITULAR.SelectSQL[1]:=´ WHERE CODSAFPE=:PESQUISA ´; TITULAR.ParamByName(´PESQUISA´).AsString := ListaCampos[0]; TITULAR.Open; end;
onde faço uma comparação dos valores 1 a 1, para ver se houve alteração e trabalho com três ipóteses:
1 - Se não houver alterações passo para o proximo registro;
2 - Havendo alterações Atualizo os dados do Registro;
3 - Não existindo o Registro Incluo como novo;
não existe a bossibilidade de duplicação, o principal é vc criar um campo chave (nomalmente o ID do Registro) que jamais será duplicado! :roll: espero ter ajudado! :wink:
21/03/2006
Carlosceuma
Valeu mesmo a dica mas, Paull eu já tive esta ideia sim, mas o que uso como exportador é um componete do IBX o IBSQL, ele exporta do banco de dados somento o que o usuário deseja exportar e ele também faz a importação do que foi exportar, porém, importa tudo que foi exportado.
eu queria fazer uma forma de fazer esta verificação, conforme vc mencionou PAULL, mas não sei fazer isso com este componente IBSQL que utilizo.
de qualquer forma, agradeço de montão aos dois.
23/03/2006
Carlosceuma
de já agradeço de montão.
Clique aqui para fazer login e interagir na Comunidade :)