Fórum problema com restauração de arquivo morto #372432
17/07/2009
0
galera, estou com um probleminha, uso os componentes da paleta dbexpress, pra gerenciar meu bd, uso o firebird, e em um formulario de ´arquivo morto´, tenho uma função para restaurar os registros, na minha tabela tenho um campo que armazena o codigo da pessoa, não é chave primaria, agora por exemplo:
minha rotina é: eu restauro o arquivo, verifica se ha duplicidade no codigo, e deleto o registro da tabela do arquivo morto.
quando tenho dois registros com os mesmos codigos, e tento deleta o registro da tabela, da um erro ´update affected more than 1 record´, já sei que ocorre este erro pq existe dois registros na tabela com msm codigo, ele tenta atualiza os dois e da esse erro, mas queria saber se há uma solução para este problema.
vlw galera!
minha rotina é: eu restauro o arquivo, verifica se ha duplicidade no codigo, e deleto o registro da tabela do arquivo morto.
quando tenho dois registros com os mesmos codigos, e tento deleta o registro da tabela, da um erro ´update affected more than 1 record´, já sei que ocorre este erro pq existe dois registros na tabela com msm codigo, ele tenta atualiza os dois e da esse erro, mas queria saber se há uma solução para este problema.
vlw galera!
Filipebs
Curtir tópico
+ 0
Responder
Posts
17/07/2009
Danielrsanches
pelo que entendi, vc tem 2 tabelas idênticas, sendo 1 ativa e outra ´morta´... e vc precisa importar os dados da ´morta´ para a ativa ??
antes de fazer a restauração do registro, vc verifica se já há um com mesmo código na tabela ativa e exclui da tabela ´morta´ ??
se é exatamente isso que vc está fazendo, não seria para ter erro, pois, se vc der um comando para excluir tipo: ´delete from TABELA where CODIGO = 1´, mesmo que exista 5 registros com código 1, todos serão excluidos sem problemas...
post aki o código pra gente analizar ...
abraços !!!
antes de fazer a restauração do registro, vc verifica se já há um com mesmo código na tabela ativa e exclui da tabela ´morta´ ??
se é exatamente isso que vc está fazendo, não seria para ter erro, pois, se vc der um comando para excluir tipo: ´delete from TABELA where CODIGO = 1´, mesmo que exista 5 registros com código 1, todos serão excluidos sem problemas...
post aki o código pra gente analizar ...
abraços !!!
Responder
Gostei + 0
17/07/2009
Filipebs
não tem segredo no código...simplesmente insiro os valores da tabela de arquivo morto na tabela onde irei restaurar, verifico se ha duplicidade pois nesta tabela o codigo é chave primaria ja na do arquivo morto não é, e deleto o registro da tabela de arquivo morto.
código pra deletar é este:
clientdataset1.delete, seguido de um clientdataset1.applyupdates(0).
e no provider flags do codigo das duas tabelas estão setados como true: inUpdate, inWhere e inKey.
código pra deletar é este:
clientdataset1.delete, seguido de um clientdataset1.applyupdates(0).
e no provider flags do codigo das duas tabelas estão setados como true: inUpdate, inWhere e inKey.
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)