rjcerri Postado Abril 4, 2005 Denunciar Share Postado Abril 4, 2005 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. Link para o comentário Compartilhar em outros sites More sharing options...
0 Progr'amador Postado Abril 4, 2005 Denunciar Share Postado Abril 4, 2005 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. Link para o comentário Compartilhar em outros sites More sharing options...
0 s3c Postado Abril 4, 2005 Denunciar Share Postado Abril 4, 2005 Olá Progr'amador e rjcerriDataMrp.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. Link para o comentário Compartilhar em outros sites More sharing options...
0 rjcerri Postado Abril 4, 2005 Autor Denunciar Share Postado Abril 4, 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('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. Link para o comentário Compartilhar em outros sites More sharing options...
0 Progr'amador Postado Abril 4, 2005 Denunciar Share Postado Abril 4, 2005 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. Link para o comentário Compartilhar em outros sites More sharing options...
0 rjcerri Postado Abril 5, 2005 Autor Denunciar Share Postado Abril 5, 2005 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!! Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
rjcerri
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.
Link para o comentário
Compartilhar em outros sites
5 respostass a esta questão
Posts Recomendados