[firebase-br] Ponto ou Virgula

Juvencio Leite juvenciolsilva em gmail.com
Qua Jul 4 10:19:27 -03 2007


Bem de acordo com o que coletei depois de inumeros emails dos colegas da
Lista, em relação a instrução Update com mais de um campo decimal, conclui
da seguinte forma a solução (ou uma delas) ao problema descrito abaixo:

UPDATE ESTOQUE SET
VL_CUSTO = 0.00,
VL_CUSTO_REAL = 0.00,
LUCRO = 4.00,
VL_T1 = 100.00,
VL_T2 = 200.00,
VL_T3 = 333.00,
SIT_A = 0.00
WHERE COD_SEQPROD = 1 AND EMPRESA = 2

Obs: o Character Set no Banco de Dados e NONE.
Desta forma realmente e correta, mas estas duas formas apresentadas por
colegas na lista não:

UPDATE ESTOQUE SET
VL_CUSTO = '0,00',
VL_CUSTO_REAL = '0,00',
LUCRO = '4,00',
VL_T1 = '100,00',
SIT_A = '0,00'
WHERE COD_SEQPROD = 1 AND EMPRESA = 2UPDATE ESTOQUE SET

 Porquê? Porque isto se tornaria uma string, não sei se em outra linguagem
sql aceita, mas firebird não demostrou na configuração que uso aceitar
Tambem de forma nenhuma esta seria uma solução:
UPDATE ESTOQUE SET
VL_CUSTO = 0,00,
VL_CUSTO_REAL = 0,00,
LUCRO = 4,00,
VL_T1 = 100,00,
SIT_A = 0,00
WHERE COD_SEQPROD = 1 AND EMPRESA = 2UPDATE ESTOQUE SET

Ate porque onde estaria os separadores? Nem existiriam neste caso.
Então porque a primeira resposta (que era a problematica) agora e a solução?
Porque amigos o erro estava na cadeira do analista, ele definiu na tabela
dois campos que seriam originalmente Decimais(18/4) por Varchar(3):

UPDATE ESTOQUE SET
VL_CUSTO = 0,00, - -decimal
VL_CUSTO_REAL = 0,00, - -decimal
LUCRO = 4,00, - -decimal
VL_T1 = 100,00, - -decimal
SIT_A = 0,00 – Varchar(????)
WHERE COD_SEQPROD = 1 AND EMPRESA = 2UPDATE ESTOQUE SET

Assim fica a moral:' nunca contrate um mal analista se você tem um
programador que no final fará o serviço dele'.
Agradeço a ajuda e a participação de todos, acredito que de alguma forma
isso tudo foi instrutivo.



Mais detalhes sobre a lista de discussão lista