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