DárioSe 0 Denunciar post Postado Setembro 28, 2009 Olá gente eu estou com uma duvida aqui, estou com um programa com base de dados firebird e estou utilizando o dbexpress. A duvida é seguinte como eu posso somar os valores de um campo do dbgrid e mostrar em um label1. Compartilhar este post Link para o post Compartilhar em outros sites
DárioSe 0 Denunciar post Postado Setembro 29, 2009 Olá gente só para reforça a minha duvida quando utilizo este comando Dtm_movimentos.DtSetOperat.close; Dtm_movimentos.DtSetOperat.CommandText:= QuotedStr('select sum(valor_total) as total from saidafilha where nrvenda = '+ Edt_nota.Text); Dtm_movimentos.DtSetOperat.ExecSQL; Dtm_movimentos.DtSetOperat.open; O erro que aparece é esse aqui, mas no ibconsole o resultado é feito normalmente Token unknown -line 1, char 0 O que pode esta ocrrendo???? Compartilhar este post Link para o post Compartilhar em outros sites
Chrnos 30 Denunciar post Postado Setembro 29, 2009 Tenta algo assim.... crie uma variável pra montar seu sql, por exemplo.... var sSQL : String; .... sSQL := 'select sum(valor_total) as total from saidafilha where nrvenda = ' + Edt_nota.Text; Dtm_movimentos.DtSetOperat.close; Dtm_movimentos.DtSetOperat.CommandText:= QuotedStr(sSQL); Dtm_movimentos.DtSetOperat.open; E não use o ExecSql em querys de consulta... o Open é o comando utilizado para isso... ExecSQL é usado em Inserts, Updates e Deletes. []'s Compartilhar este post Link para o post Compartilhar em outros sites
DárioSe 0 Denunciar post Postado Setembro 29, 2009 Cara eu fiz o que você mandou mas retornou o mesmo erro! mas valeu pela dica do ExecSql Compartilhar este post Link para o post Compartilhar em outros sites
Chrnos 30 Denunciar post Postado Setembro 30, 2009 O campo nrvenda é um campo de que tipo? Se jogar a query direto no BD com os dados que passa no edit, ela roda normalmente? []'s Compartilhar este post Link para o post Compartilhar em outros sites
DárioSe 0 Denunciar post Postado Outubro 1, 2009 O nrvenda é uma chave primaria ele é do tipo inteiro, se eu fizer o codico no query assim select sum(valor_total) as total from saidafilha where nrvenda = 45 mas se eu fizer assim da o erro select sum(valor_total) as total from saidafilha where nrvenda = '+ Edt_nota.Text Compartilhar este post Link para o post Compartilhar em outros sites
DárioSe 0 Denunciar post Postado Outubro 3, 2009 valeu pela ajuda Chronos! mas foi essa codigo que salvou meu programa! valeu a todos Resolvido procedure TFrm_Saida_mercadoria.Edt_VUnExit(Sender: TObject); var tot: real; bookmark : tbookmarkstr; begin Dtm_movimentos.DtSetDetalhe.edit; Dtm_movimentos.DtSetDetalhe['valor_total']:= Dtm_movimentos.DtSetDetalhe['Qtdi']* Dtm_movimentos.DtSetDetalhe['valor_unit']; Dtm_Cadastros.SimpleDSet_CadEstoq.edit; Dtm_Cadastros.SimpleDSet_CadEstoq['qtd']:= Dtm_Cadastros.SimpleDSet_CadEstoq['qtd'] -Dtm_movimentos.DtSetDetalhe['Qtdi']; bookmark := Dtm_movimentos.DtSetDetalhe.Bookmark; try Dtm_movimentos.DtSetDetalhe.DisableControls; tot := 0; try Dtm_movimentos.DtSetDetalhe.First; while not Dtm_movimentos.DtSetDetalhe.Eof do begin if Dtm_movimentos.DtSetDetalhe['valor_total'] <> null then tot := tot + Dtm_movimentos.DtSetDetalhe.fields[4].asfloat; Dtm_movimentos.DtSetDetalhe.next; end; finally Dtm_movimentos.DtSetDetalhe.EnableControls; end; finally Dtm_movimentos.DtSetDetalhe.Bookmark := bookmark; end; Dtm_movimentos.DtSetDetalhe.edit; Dtm_movimentos.DtSetDetalhe['total'] := tot; Dtm_movimentos.DtSetDetalhe.post; Label22.Caption:=floattostr(tot); end; procedure TFrm_Saida_mercadoria.Edt_QtdExit(Sender: TObject); begin if edt_qtd.Text = null then begin showmessage('Por favor informe a quantidade'); edt_qtd.SetFocus; end end; end. Compartilhar este post Link para o post Compartilhar em outros sites