• 0
Sign in to follow this  
rjcerri

Comando Sql (Resolvido)

Question

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. blink.gif

Share this post


Link to post
Share on other sites

5 answers to this question

Recommended Posts

  • 0

Olá,

você ta tentando alterar os campos 'falta' e 'total'?

1º - No SET você deve usar ',' (virgula) em vez de 'and';

2º - ta faltando receber o valor do parametro tot ;

3º - não há necesidades desses parenteses entre os parametros fal e tot.

deixe assim:

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.ExecSQL;

Abs. Progr'amador.

Share this post


Link to post
Share on other sites
  • 0

Olá Progr'amador e rjcerri

DataMrp.ZQueryMrpmat.Parambyname('fal').asfloat:=DataMrp.ZQueryMrpmat.fieldbyname('qtdmatprima').asfloat-DataMrp.ZQueryMrpmat.Fieldbyname('estoque').asfloat;
Acredito que não funcionará porque o Dataset DataMrp.ZQueryMrpmat deve estar aberto pelo comando Select.

Share this post


Link to post
Share on other sites
  • 0

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('preço').AsFloat*DataMrp.ZQueryMrpmat.fieldbyname('falta').AsFloat;

DataMrp.ZQueryMrpmat.ExecSQL;

dei mole no parametro tot, mas mesmo assim continua dando aquela mensagem de erro.

Share this post


Link to post
Share on other sites
  • 0

Ola rjcerri,

é como o s3c falou, eu não havia percebido isso, mas se essa query ZQueryMrpmat já esta sendo usada pra uma SELECT você teria que usar uma outra query pra executar esse update, já que os paramtros fal e tot busca o resultado desse query 'ZQueryMrpmat', entedeu????

Abs. Progr'amador.

Share this post


Link to post
Share on other sites
  • 0

DataMrp.ZQueryMrpmat.SQL.Clear;

DataMrp.ZQueryMrpmat.SQL.Add('update mrpmatprima set falta=qtdmatprima-estoque ,total=:preço*falta where simulacao=:simu and qtdmatprima > estoque ');

DataMrp.ZQueryMrpmat.Parambyname('simu').asinteger:=strtoint(txtsimulacao.text);

DataMrp.ZQueryMrpmat.ExecSQL;

Assim funcionou valeu!! biggrin.gifbiggrin.gif

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
Sign in to follow this