[firebase-br] RES: Fwd: Dica sobre Firebird

Jose Aparecido da Silva joseasilva em bol.com.br
Seg Out 15 10:23:15 -03 2007


Se você usa tudo com parâmetros, porque somente no valor você muda para usar
literal. Use parâmetros como fez com o restante do código e o delphi irá
fazer as transformações necessárias.
Faça isso:
        DM1.IBQ1.Close;
        DM1.IBQ1.SQL.Clear;
        DM1.IBQ1.SQL.Add('update PRODUTO set NOME=:P1, DESCRICAO=:P2,
CODUNI=:P3,CODCAT=:P4, ');
        DM1.IBQ1.SQL.Add('DATACADASTRO=:P5, PRECO='#39+Preco+#39',
QTD= :QTD, QTDMIN= :QTDMIN, PRECOCUSTO= :PRECODECUSTO ');
        DM1.IBQ1.SQL.Add(' where COD=:P10');
        DM1.IBQ1.ParamByName('P1').AsString:=Nome;
        DM1.IBQ1.ParamByName('P2').AsString:=Descricao;
        DM1.IBQ1.ParamByName('P3').AsString:=CODuni;
        DM1.IBQ1.ParamByName('P4').AsString:=CODcat;
        DM1.IBQ1.ParamByName('P5').AsString:=DataCadastro;
        DM1.IBQ1.ParamByName('P10').AsString:=COD;
        DM1.IBQ1.ParamByName('QTE').AsFloat:= QTD;
        DM1.IBQ1.ParamByName('QTDMIN').AsFloat:= QTDMIN;
        DM1.IBQ1.ParamByName('PRECODECUSTO').AsFloat:= PrecoDeCusto;
        DM1.IBQ1.ExecSql;
        if DM1.IBQ1.RowsAffected = 0 then **erro** else **tudo certo**


-----Mensagem original-----
De: lista-bounces em firebase.com.br [mailto:lista-bounces em firebase.com.br] Em
nome de Jeferson Oliveira
Enviada em: domingo, 14 de outubro de 2007 19:11
Para: FireBase
Cc: sgtmarcos em yahoo.com.br
Assunto: [firebase-br] Fwd: Dica sobre Firebird

Olá Marcos!

Estou encaminhado sua mensagem para a lista da Firebase para aumentar
suas chances de conseguir ajuda para resolução do seu problema.
Por hora não tenho qualquer sugestão a lhe dar.


---------- Forwarded message ----------
From: Marcos P. M. de Souza <sgtmarcos em yahoo.com.br>
Date: 14/10/2007 00:31
Subject: Dica sobre Firebird
To: jefersonfoliveira em gmail.com




Por favor me dê uma dica.

Estou tentando fazer um Insert num banco de dados Firebird com os
comandos abaixo:

      DM1.IBQ1.Close;
        DM1.IBQ1.SQL.Clear;
        DM1.IBQ1.SQL.Add('update PRODUTO set NOME=:P1, DESCRICAO=:P2,
CODUNI=:P3,CODCAT=:P4, ');
        DM1.IBQ1.SQL.Add('DATACADASTRO=:P5, PRECO='#39+Preco+#39',
QTD='#39+QTD+#39', QTDMIN='#39+QTDMin+#39',
PRECOCUSTO='#39+PrecoCusto+#39' ');
        DM1.IBQ1.SQL.Add(' where COD=:P10');
        DM1.IBQ1.ParamByName('P1').AsString:=Nome;
        DM1.IBQ1.ParamByName('P2').AsString:=Descricao;
        DM1.IBQ1.ParamByName('P3').AsString:=CODuni;
        DM1.IBQ1.ParamByName('P4').AsString:=CODcat;
        DM1.IBQ1.ParamByName('P5').AsString:=DataCadastro;
        DM1.IBQ1.ParamByName('P10').AsString:=COD;
        DM1.IBQ1.Open;

Não aparecem erros. Mas as casas decimais se
multiplicam...Porque????????????
Os campos Preco, QTD, PRECOCUSTO e DTDMin são do tipo Float no Firebird 15.

Se tento inserir o valor "1,00" para qualquer uma valor ele aparece
como se tivesse inserido "100,00".
Se eu inserir "2,1" ele mostra depois como se fosse 210,00.
Ele multiplica tudo por 100.


Marcos P. M. de Souza
www.mpsoftwares.com
suporte em mpsoftwares.com

______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.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





Mais detalhes sobre a lista de discussão lista