GARANTIR DESCONTO

Fórum Insert parece não receber valor do parametro. #267149

02/02/2005

0

Bom dia,

Eu uso banco de dados MySQL e o componetne ZEOS.

Me parece que meu insert não esta recebendo o valor do parametro, pois já dei um SHOWMESSAGE(parambyname(´PedidoID´).asstring) e ele me retornou o valor correto.

Introdução - hehe

Tenho o seguinte código no TzUpdateSQL :

insert into item_pedido (
  PedidoID,
  RevendaID, 
  PABXID, 
  Versao, 
  TipoPedidoID,
  Desconto, 
  Data, 
  DataFim,  
  Observacao, 
  Preco, 
  FaixaVenda
)
values (
  :PedidoID,
  :RevendaID,
  :numero, 
  :Versao, 
  :TipoPedidoID, 
  :Desconto, 
  :Data, 
  :DataFim, 
  :Observacao, 
  :Preco, 
  :FaixaVenda
);


este updatesql é ligando numa qry com nome de qryItem_Pedido.

No evento BeforePost coloco o seguinte código :

    with updItem_Pedido.Params do
    begin
      ParamByName(´PedidoID´).AsInteger := qryPedidoPedidoID.AsInteger;
      ParamByName(´ItemPedidoID´).AsInteger := qryItem_PedidoItemPedidoID.AsInteger;
      ParamByName(´RevendaID´).AsInteger := qryItem_PedidoRevendaID.Value;
      ParamByName(´numero´).AsInteger := qryItem_PedidoPABXID.Value;
      ParamByName(´Versao´).AsString := qryItem_PedidoVersao.Value;
      ParamByName(´TipoPedidoID´).AsInteger := qryItem_PedidoTipoPedidoID.AsInteger;
      ParamByName(´Data´).AsDate := qryItem_PedidoData.AsDateTime;
      ParamByName(´DataFim´).AsDate := qryItem_Pedidodatafim.AsDateTime;
      ParamByName(´Desconto´).AsString := qryItem_PedidoDesconto.Value;
      ParamByName(´Observacao´).AsMemo := qryItem_Pedidoobservacao.Value;
      ParamByName(´Preco´).AsFloat := qryItem_Pedidopreco.Value;
      ParamByName(´FaixaVenda´).AsString := qryItem_Pedidofaixavenda.AsString;
    end;


O problema é o seguinte me parece que no INSERT não esta recebendo o valor do Parametro :PedidoID, pois apesar de dar um ShowMessage nele e ver o valor correto, o delphi me retorna um erro dizendo que o campo PedidoID não aceita valores nulos.

Usando o SQLMonitor vejo a consulta da seguinte maneira :

insert into item_pedido (PedidoID, RevendaID, PABXID, Versao, TipoPedidoID, Desconto, Data, DataFim, Observacao, Preco, FaixaVenda ) values (NULL, 2, 0, ´6.30´, 1, ´20´, ´2005-02-02´, NULL, NULL, 600, ´22´ )


concluo então que o parametro realmente não esta recebendo o valor, e isso é muiiito estranho.


Douglasf

Douglasf

Responder

Posts

02/02/2005

Douglasf

sobe....


Responder

Gostei + 0

02/02/2005

Paulo_amorim

Olá

Se você passar uma constante para o parâmetro ele funciona?
Pois ele até está pegando...

Você não está pegando um componente errado, por engano né? Às vezes acontece...


Responder

Gostei + 0

02/02/2005

Douglasf

infelizmente já fiz estes teste e não encontrei nenhum problema.


Responder

Gostei + 0

02/02/2005

Marcelo Saviski

Se depois dessa linha:

ParamByName(´PedidoID´).AsInteger := qryPedidoPedidoID.AsInteger; 


vc colocar isso:

Assert(ParamByName(´PedidoID´).AsInteger = qryPedidoPedidoID.AsInteger, ´Valor Incorreto no parametro, o valor deveria ser: ´ + qryPedidoPedidoID.AsString);


Ocorre algum erro nessas linhas?


Responder

Gostei + 0

04/02/2005

Douglasf

Sim, ocorreu um erro justamente nesta linha que me passou.

[color=darkred:f2d7989c05]Valor incorreto no parametro, o valor deveria ser : 1 (c:/Meus documentos/Douglas/Compras/uPedido.pas, line 303) [/color:f2d7989c05]


no caso 1 é o valor que o paramentro recebe e 303 é a linha que esta o comando que me passou.



não estou entendendo nada pois TODOS os paratros recebe um valor da qryItemPedido, inclusive o parametro PedidoID mas ao executar o camando SQL ele retorana o erro dizendo que que o campo PedidoID não pode ser nulo, muito estranho isto...

Uma vez eu ouvi um amigo falando que tem um comando no mysql que mostra como a consulta SQL esta sendo executada, alquem saberia qual é este comando derrente pode me ajudar.


Responder

Gostei + 0

04/02/2005

Douglasf

sobe...

ainda não consegui.


Responder

Gostei + 0

04/02/2005

Marcelo Saviski

O problema é que essa linha ´não está funcionando´, pelo menos não como deveria

ParamByName(´PedidoID´).AsInteger := qryPedidoPedidoID.AsInteger; 


se vc fizer como o Paulo Amorim disse, passando um valor constante,
ParamByName(´PedidoID´).AsInteger := 1

Continua o NULL no lugar do 1?


Responder

Gostei + 0

04/02/2005

Douglasf

Ja tinha tentado isso mas não deu certo.

Estou ficando maluco... no minimo.

Fiz também um teste, na consulta sql do UpdateObject coloquei um valor constante e ai cadastrou, mas pelo parâmetro não cadastra de jeito nenhum.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar