Fórum comando SQL #275405
04/04/2005
0
DataMrp.ZQueryMrpmat.SQL.Add(´update mrpmatprima set falta=(:fal) and total=(:tot) where simulacao=:simu and qtdmatprima > estoque ´);
DataMrp.ZQueryMrpmat.Parambyname(´simu´).asinteger:=strtoint(txtsimulacao.text);
DataMrp.ZQueryMrpmat.Parambyname(´fal´).asfloat:=DataMrp.ZQueryMrpmat.fieldbyname(´qtdmatprima´).asfloat-DataMrp.ZQueryMrpmat.Fieldbyname(´estoque´).asfloat;
DataMrp.ZQueryMrpmat.ExecSQL;
estou usando esse comando acima e da essa mensagem de erro.
´no argument for format ´¬s´ ,process stop´
não posso usar o update dessa forma? estou tentando passar para o paremetro Fal o resultado entre dois campos dessa mesma tabela.
Rjcerri
Curtir tópico
+ 0Posts
04/04/2005
Emerson Nascimento
Gostei + 0
04/04/2005
Vendre
Gostei + 0
04/04/2005
Kapak
Gostei + 0
04/04/2005
Rjcerri
DataMrp.ZQueryMrpmat.SQL.Add(´update mrpmatprima set falta=:fal,total=:tot where simulacao=:simu and qtdmatprima > estoque ´);
DataMrp.ZQueryMrpmat.Parambyname(´simu´).asinteger:=strtoint(txtsimulacao.text);
DataMrp.ZQueryMrpmat.Parambyname(´fal´).asfloat:=DataMrp.ZQueryMrpmat.fieldbyname(´qtdmatprima´).asfloat-DataMrp.ZQueryMrpmat.Fieldbyname(´estoque´).asfloat;
DataMrp.ZQueryMrpmat.Parambyname(´tot´).asfloat:=DataMrp.ZQueryMrpmat.fieldbyname(´preco´).AsFloat*DataMrp.ZQueryMrpmat.fieldbyname(´falta´).AsFloat;
DataMrp.ZQueryMrpmat.ExecSQL;
dei mole no parametro tot, mas mesmo assim continua dando aquela mensagem de erro.
Gostei + 0
04/04/2005
Cabelo
Colega..
Não manjo muito em trabalhar com parambyname, mas será que vc não estaria usando eles de forma errada, talvez se vc passar os parâmetros antes de dar o SQL, acho que resolveria.. assim:
DataMrp.ZQueryMrpmat.SQL.Clear;
DataMrp.ZQueryMrpmat.Parambyname(´simu´).asinteger:=strtoint(txtsimulacao.text);
DataMrp.ZQueryMrpmat.Parambyname(´fal´).asfloat:=DataMrp.ZQueryMrpmat.fieldbyname(´qtdmatprima´).asfloat-DataMrp.ZQueryMrpmat.Fieldbyname(´estoque´).asfloat;
DataMrp.ZQueryMrpmat.Parambyname(´tot´).asfloat:=DataMrp.ZQueryMrpmat.fieldbyname(´preco´).AsFloat*DataMrp.ZQueryMrpmat.fieldbyname(´falta´).AsFloat;
DataMrp.ZQueryMrpmat.SQL.Add(´update mrpmatprima set falta=:fal,total=:tot where simulacao=:simu and qtdmatprima > estoque ´);
DataMrp.ZQueryMrpmat.ExecSQL;
Gostei + 0
05/04/2005
Kapak
Então como ele conseguirá pegar o valor que está em negrito ?
Será que ele fará um [b:5d325b3225]Select[/b:5d325b3225] nos bastidores antes do [b:5d325b3225]Update[/b:5d325b3225]?
Gostei + 0
05/04/2005
Emerson Nascimento
with DataMrp.ZQueryMrpmat do begin SQL.Clear; SQL.Add(´update mrpmatprima set total=(qtdmatprima-estoque)*preco, falta=qtdmatprima-estoque´); SQL.Add(´where simulacao=:simu and qtdmatprima > estoque´); Parambyname(´simu´).asinteger:=strtoint(txtsimulacao.text); ExecSQL; end;
Gostei + 0
05/04/2005
Cabelo
Então como ele conseguirá pegar o valor que está em negrito ?
Será que ele fará um [b:3fa9d0641a]Select[/b:3fa9d0641a] nos bastidores antes do [b:3fa9d0641a]Update[/b:3fa9d0641a]?[/quote:3fa9d0641a]
Colega..
O select deve ter acontecido em alguns eventos anteriores, pois a query deve estar aberta para que aconteça esta atribuição, e é passada por parâmetros ao dataset na hora de dar o update, eu particularmente não gosto de trabalhar assim, prefiro usar o SQL na mão mesmo e simplesmente jogar os selects, updates, inserts, deletes .. numa variável string, e manipular a vontade, sem depender do dataset para isso, muito menos dos parâmetros, o quê aumenta e muito o desempenho do comando.
Gostei + 0
05/04/2005
Kapak
1-É dado ZQueryMrpmat.SQL.Clear
2-É dado ZQueryMrpmat.SQL.Add(´update ...´)
3-O valor atribuído ao ParamByName(´fal´) é ZQueryMrpmat.fieldbyname(´qtdmatprima´).asfloat-DataMrp.ZQueryMrpmat.Fieldbyname(´estoque´).asfloat;
Ou seja, é a mesma query.
Vc poderia me explicar melhor como isso ocorre ?
Gostei + 0
05/04/2005
Rjcerri
DataMrp.ZQueryMrpmat.SQL.Add(´update mrpmatprima set falta=qtdmatprima-estoque ,total=:preco*falta where simulacao=:simu and qtdmatprima > estoque ´);
DataMrp.ZQueryMrpmat.Parambyname(´simu´).asinteger:=strtoint(txtsimulacao.text);
DataMrp.ZQueryMrpmat.ExecSQL;
Assim funcionou valeu!! :D
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)