adrianno 7 Denunciar post Postado Abril 7, 2012 Olá gente, gostaria de saber como usar functions para acesso as tebelas e dados exe: em varios locais do programa eu preciso fazer coisas tipo suponha que minha query se chama "SQL_listar" e é um ADOquery if no SQL_listar.eof then begin VALOR:=0; SQL_listar.first; while SQL_listar.recordcount > 0 do begin VALOR:= VALOR + SQL_listarPRECO.VALUE SQL_listar.NEXT end; end; FAÇO ISSO PARA OBTER UM TOTAL DO PRECO DE TODA A TABELA porem, isso pode ser feito em varias outras como alterar em forma de function? exe: ja tentei assim ó function SomarValor(TABELA: TADOQUERY):DOUBLE; BEGIN if no TABELA.eof then begin VALOR:=0; //LEMBRANDO QUE ESTA VARIAVEL ESTA DECLARADA PUPLICA E E PEGO SEU VALOR DE ONDE EU QUERO TABELA.first; while TABELA.recordcount > 0 do begin VALOR:= VALOR + SQL_listarPRECO.VALUE // AQUI NAO CONSIGO OBTER TABELA.VALUE TABELA.NEXT end; RESULT := VALOR END; DEPOIS ONDE EU PRECISAR SomarValor(SQL_listar) como fazer isso e porque o valor dá 0,00 mesmo percorrendo todos os 10,20,300 registros? Compartilhar este post Link para o post Compartilhar em outros sites
RGomes88 1 Denunciar post Postado Abril 13, 2012 Bom Dia Tenta fazer o seguinte while not(tabela.Eof) do begin VALOR:= VALOR + tabela.fieldbyname('NOMEDOCAMPO').VALUE; tabela.NEXT end; Falou Compartilhar este post Link para o post Compartilhar em outros sites
adrianno 7 Denunciar post Postado Abril 16, 2012 desculpe existiu um erro de digitação minha aqui no post, neste local ------------ while TABELA.recordcount > 0 do ----------- ja era mesmo com while not TABELA.eof mesmo porque ia dar um laço infinito desta forma tentei usar agora VALOR:= VALOR + tabela.fieldbyname('NOMEDOCAMPO').VALUE; // porem o valor dá 0 se eu fizer o laço com o nome da tabela diretamente, sem querer usar funções e parametros, ela retorna o valor correto Compartilhar este post Link para o post Compartilhar em outros sites