Ir para conteúdo

POWERED BY:

Arquivado

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

Rodrigo Miss

Pegar valor maximo na tabela

Recommended Posts

Galera to usando a seguinte instrucao SQL

 

qry.SQL.Add('Select MAX(COD_CAIXA) WHERE CAIXA');

gostaria de pegar o valor maior q tiver na coluna COD_CAIXA,,, mais naum ta funcionando

 

 

alguem teria alguma dica?

Compartilhar este post


Link para o post
Compartilhar em outros sites

rs. kra.. akilo ali foi um erro de digitacao

na verdade eu fiz assim:

 

 

qry.Close;qry.SQL.Clear;qry.SQL.Add('Select MAX(IDDIA) FROM CAIXA');qry.Open;ShowMessage(IntToStr(qryIDDIa.Value));

ele me retorna o seguinte erro:

qry: Field 'ID' not found...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Este erro ocorre pois no seu comando SQL não existe este campo, o que você pode fazer é o seguinte:

 

qry.Close;qry.SQL.Clear;qry.SQL.Add('Select MAX(IDDIA) as Maior');qry.SQL.Add('FROM CAIXA');qry.Open;if not qry.FieldByName('Maior').IsNull then	ShowMessage(IntToStr(qry.FieldByName('Maior').Value));

Caso você adicione os campos na qry, pode fazer:

 

if not qryMAIOR.IsNull then	ShowMessage(IntToStr(qryMAIOR.Value));

Compartilhar este post


Link para o post
Compartilhar em outros sites

No caso esta qry precisa ser em separado, ela não pode já ter campos dentro, vai no SQL e adiciona o comando acima, depois adiciona o Feld no FieldEditor, vai aparecer somente um, ou seja, o campo MAIOR...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Humm.. na verdade issu eu tinha feito e tinha funcionado msm... ele aparece Expr1000 neh?Agora eu fiko pensando..p q sera q naum pode ser uma qry comum... deve usar comente pra issu msm neh...???

Compartilhar este post


Link para o post
Compartilhar em outros sites

Justamente por causa desses problemas de renomeação de campos, o nome que ele retorna depende muito do BD... Mas deixe um qry separada mesmo somente para este tipo de serviço...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Depois se quiser você consegue criar uma função que vai somente fazer este tipo de trabalho para você, pode-se utilizar até mesmo para gerar o próximo código em uma tabela, para os casos de BD que não possuem campos auto incremento, podendo assim criar uma função que você passa o nome da tabela e o campo desejado e ele le retorna o valor, usando assim somente esta qry em todo o sistema.

Compartilhar este post


Link para o post
Compartilhar em outros sites

otimo bixo... gostei dessa... vlw msm...

 

seria algo assim?:

 

function ProximoCod(Tabela, Campo: string): integer;beginqry.Close;qry.SQL.Clear;qry.SQL.Add('Select MAX(Campo) as Maior');qry.SQL.Add('FROM' + Tabela);qry.Open;if not qry.FieldByName('Maior').IsNull then	result:= qry.FieldByName('Maior').Value;end;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se for para funcionar como uma função para buscar o próximo código, pode ser algo do tipo:

 

function ProximoCod(Tabela, Campo: string): integer;var	prox: integer;beginprox:=0;qry.Close;qry.SQL.Clear;qry.SQL.Add('Select MAX(Campo) as Maior');qry.SQL.Add('FROM' + Tabela);qry.Open;if not qry.FieldByName('Maior').IsNull then	prox:=qry.FieldByName('Maior').Value;Inc(prox);ProximoCod:=prox;end;

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.