[firebase-br] Update em campo errado
Felipe Giotto
felipe em metasoftware.com.br
Qui Jan 5 17:02:22 -03 2006
Olá, amigos da Firebase!!
Após retornar de férias (ah, como a praia é maravilhosa!!! :D) e chegar
na empresa, já me deparei com um pepino que não compreendi!!
Nosso sistema possui uma tabela que armazena as contas a receber e o
histórico das vendas dos clientes. Dentre outros, esta tabela possui os
campos CODCLIENTE e CODUSUARIO e TOTALVENDA.
Em uma das atualizações, precisamos alterar um pouco a estrutura e criar
um campo extra que, retroativamente, iria receber o mesmo valor do campo
CODUSUARIO. Para a atualização ser realizada, os comandos a seguir foram
executados:
(Transação Iniciada)
SQL1: ALTER TABLE MOVIMENTOCLIENTE ADD CODUSUARIOBAIXOU INTEGER
SQL2: UPDATE MOVIMENTOCLIENTE SET CODUSUARIOBAIXOU=CODUSUARIO
(Commit)
Na maioria dos casos, tudo funcionou corretamente. Porém, em um de
nossos clientes, ao invés do SQL2 alterar o campo CODUSUARIOBAIXOU, o
campos CODCLIENTE que foi alterado!! O update fez com que o campo
CODUSUARIO fosse gravado no campo CODCLIENTE da tabela!! Em outro
cliente, o campo TOTALVENDA é que recebeu o valor do campo CODUSUARIO!!!
Existe alguma falha do Firebird que faça com que isso aconteça?? Em um
dos casos, pudemos recuperar o banco original e, através do Validate do
IBOConsole, descobri que o banco estava corrompido... Agora eu não sei
se essa foi a única razão do problema ter acontecido e também não sei
como prever problemas como este!! Algum colega tem alguma idéia??
Desde já agradeço,
--
Felipe Luiz Christófolli Giotto
Mais detalhes sobre a lista de discussão lista