RES: [firebase-br] Update em campo errado

Roger roger em dgpram.com.br
Qui Jan 5 17:53:10 -03 2006


Felipe, boa tarde!!

Numa consultoria recente com Cantu, me lembro bem de uma frase, para "evitar
na mesma transação, alterar a estrutura e alterar dados...". O FireBird pode
apresentar algumas surpresas, e pode ser o seu caso.
Não sei o motivo, mas em todo caso ...

[]´s Roger

-----Mensagem original-----
De: lista-bounces em firebase.com.br
[mailto:lista-bounces em firebase.com.br]Em nome de Felipe Giotto
Enviada em: quinta-feira, 5 de janeiro de 2006 17:02
Para: Lista - Firebase
Assunto: [firebase-br] Update em campo errado


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



______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
Para editar sua configuração na lista, use o endereço
http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
Para consultar mensagens antigas: http://firebase.com.br/pesquisa

--------------------------------------------------
Esta mensagem foi verificada por Ultralink-Scanner
e nenhum virus foi encontrado.

Web Server Ultralink: http://www.ultralink.com.br
--------------------------------------------------





--------------------------------------------------
Esta mensagem foi verificada por Ultralink-Scanner
e nenhum virus foi encontrado.

Web Server Ultralink: http://www.ultralink.com.br
--------------------------------------------------





Mais detalhes sobre a lista de discussão lista