Insert parece não receber valor do parametro.
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 :
este updatesql é ligando numa qry com nome de qryItem_Pedido.
No evento BeforePost coloco o seguinte código :
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 :
concluo então que o parametro realmente não esta recebendo o valor, e isso é muiiito estranho.
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
Curtidas 0
Respostas
Douglasf
02/02/2005
sobe....
GOSTEI 0
Paulo_amorim
02/02/2005
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...
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...
GOSTEI 0
Douglasf
02/02/2005
infelizmente já fiz estes teste e não encontrei nenhum problema.
GOSTEI 0
Marcelo Saviski
02/02/2005
Se depois dessa linha:
vc colocar isso:
Ocorre algum erro nessas linhas?
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?
GOSTEI 0
Douglasf
02/02/2005
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.
[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.
GOSTEI 0
Douglasf
02/02/2005
sobe...
ainda não consegui.
ainda não consegui.
GOSTEI 0
Marcelo Saviski
02/02/2005
O problema é que essa linha ´não está funcionando´, pelo menos não como deveria
se vc fizer como o Paulo Amorim disse, passando um valor constante,
Continua o NULL no lugar do 1?
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?
GOSTEI 0
Douglasf
02/02/2005
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.
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.
GOSTEI 0