comando SQL
DataMrp.ZQueryMrpmat.SQL.Clear;
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.
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
Curtidas 0
Respostas
Emerson Nascimento
04/04/2005
está faltando passar o valor do parâmetro :tot
GOSTEI 0
Vendre
04/04/2005
amigo pela msg de erro q deu.. falta mais um ¬ nos teus parametros ficando assim.. ´¬s¬´
GOSTEI 0
Kapak
04/04/2005
DataMrp.ZQueryMrpmat.Parambyname(´fal´).asfloat:=DataMrp.ZQueryMrpmat.fieldbyname(´qtdmatprima´).asfloat-DataMrp.ZQueryMrpmat.Fieldbyname(´estoque´).asfloat;
Isso funciona ?GOSTEI 0
Rjcerri
04/04/2005
DataMrp.ZQueryMrpmat.SQL.Clear;
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.
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
Cabelo
04/04/2005
DataMrp.ZQueryMrpmat.SQL.Clear;
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.
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
Kapak
04/04/2005
Isto é uma novidade p/ mim e gostaria muito de aprender:
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]?
DataMrp.ZQueryMrpmat.SQL.Clear;
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:=[b:5d325b3225]DataMrp.ZQueryMrpmat.fieldbyname(´qtdmatprima´).asfloat-DataMrp.ZQueryMrpmat.Fieldbyname(´estoque´).asfloat[/b:5d325b3225];
O Dataset está num comando [b:5d325b3225]Update[/b:5d325b3225] certo?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
Emerson Nascimento
04/04/2005
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
Cabelo
04/04/2005
Isto é uma novidade p/ mim e gostaria muito de aprender:[quote:3fa9d0641a]DataMrp.ZQueryMrpmat.SQL.Clear;
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:=[b:3fa9d0641a]DataMrp.ZQueryMrpmat.fieldbyname(´qtdmatprima´).asfloat-DataMrp.ZQueryMrpmat.Fieldbyname(´estoque´).asfloat[/b:3fa9d0641a];
O Dataset está num comando [b:3fa9d0641a]Update[/b:3fa9d0641a] certo?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
Kapak
04/04/2005
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
Desculpe minha ignorância mas confesso que não entendí.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
Rjcerri
04/04/2005
DataMrp.ZQueryMrpmat.SQL.Clear;
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
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