problema com restauração de arquivo morto

Delphi

17/07/2009

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!


Filipebs

Filipebs

Curtidas 0

Respostas

Danielrsanches

Danielrsanches

17/07/2009

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 !!!


GOSTEI 0
Filipebs

Filipebs

17/07/2009

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.


GOSTEI 0
POSTAR