Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

adrianno

Manipular tabelas e query via functions dinamicas

Recommended Posts

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

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.