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

Ajuda em rotina de atualização de Estoque


Recife

Pergunta

Olá pessoal,

estou com uma dúvida numa rotina de um código para atualizar estoque de um sistema em delphi 7 e bd firebird 2.0, segue o código abaixo:

with DM.QryDML do
    begin
      try
        Close;
        SQL.Clear;
        SQL.Text := 'update tbproduto '+
                    'set qtdestprod = qtdestprod -('+#39+DBGrid1.Fields[2].AsString+#39+') '+
                    'where codprod =:'+#39+IntToStr(TblProdCODPROD.AsInteger)+#39;
        ExecSQL;    // neste ponto acusa o seguinte erro: SQL Parse ERROR: Paraments name expected                 
        DM.IBTransaction1.CommitRetaining;
      except
        DM.IBTransaction1.RollbackRetaining;
        ShowMessage('Estoque não atualizado!');
        Abort;
      end;

Passo o valor que esta contido na coluna quantidade do dbgrid diminuindo da quantidade da tabela produto(qtdestprod), afim de atualizar a quantidade em estoque do produto na referida tabela(produto) após realizar uma venda.

Editado por Micheus
Adicionado o delimitador de código [code] [/code]. Lembre-se de utilizá-lo para melhor visualização
Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0
ExecSQL; // neste ponto acusa o seguinte erro: SQL Parse ERROR: Paraments name expected

SQL Parse ERRO: Nome de Paramentro esperado

Este erro acontece quando um nome de tabela ou coluna é esperado.

'where codprod =:'+#39+IntToStr(TblProdCODPROD.AsInteger)+#39;
voce colocou um numero como parametro e não um nome que vai receber este numero exemplo
'where codprod =:COD;

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

Valeu Jhonas, resolveu beleza. Tava martelando fazia horas e um erro tão besta. Ao invés de passar parametro passei o valor diretamenta para a senteça. Ccorrigindo o codigo que coloquei:

with DM.QryDML do
    begin
      try
        Close;
        SQL.Clear;
        SQL.Text := 'update tbproduto '+
                          'set qtdestprod = qtdestprod -('+DBGrid1.Fields[2].AsString+') '+
                          'where codprod ='+IntToStr(TblProdCODPROD.AsInteger);
        ExecSQL;
        DM.IBTransaction1.CommitRetaining;
      except
        DM.IBTransaction1.RollbackRetaining;
        ShowMessage('Estoque não atualizado!');
        Abort;
      end;

Editado por Micheus
Incluída tag's CODE para melhorar a visualização. Utilize a identação também ;)
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...