Ir para conteúdo
Fórum Script Brasil
  • 0

Comando Sql (Resolvido)


rjcerri

Pergunta

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

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 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.

Link para o comentário
Compartilhar em outros 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.
Link para o comentário
Compartilhar em outros 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.

Link para o comentário
Compartilhar em outros 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.

Link para o comentário
Compartilhar em outros 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

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...