[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