[firebase-br] resultado de query

Caio Oliveira news em caiosis.com.br
Dom Out 24 10:08:11 -03 2004


Joelson wrote:
> Olá pessoal, aproveitando q o assunto já tá em pauta eu tenho a
> seguinte situação. preciso selecionar blocos de 8 em 8 registros
> avancando e recuando, tipo no primeiro avanco eu seleciono os
> primeiros 8 registros e depois os próximos 8 e assim sucessivamente
> isso eu consegui fazer, o problema ta sendo voltar, veja o código
> abaixo.
> 
> LIni guarda o valor do primeiro registro de 8
> LFin guarda o valor do ultimo registro de 8
> 
>   if (Sender=LVoltar) then
>   begin
>     RSList.SQL.Add('SELECT FIRST 8 DESCRICAO FROM LISTA');
>     RSList.SQL.Add('WHERE DESCRICAO < '+#39+LIni+#39);
>   end
>   else
>     if (Sender=LAvanca) then
>     begin
>       RSList.SQL.Add('SELECT FIRST 8 DESCRICAO FROM LISTA');
>       RSList.SQL.Add('WHERE DESCRICAO > '+#39+LFin+#39);
>     end
>     else
>       RSList.SQL.Add('SELECT FIRST 8 DESCRICAO FROM LISTA');
>   RSList.SQL.Add('ORDER BY PRIORIDADE ASC');
> 
> quando o select tenta voltar ele num pega os 8 anteriores a LIni. e o
> resultado
> não sai a contento.
> 
> sem mais
> 
> Joelson
> 
> 
> 
> 
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
> Para editar sua configuração na lista, use o endereço http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> 

Use o SKIP juntamente com o FIRST para conseguir o que deseja 
facilmente. veja a instrução abaixo:


SELECT FIRST 8 SKIP nSkip DESCRICAO FROM LISTA
WHERE DESCRICAO containing 'xxx';

onde: nSkip é a única variável que você vai precisar para movimentar o 
resultado para frente ou para trás.

nSkip = 0   ;  primeiros 8 registros.
nSkip = 8   ;  próximos 8 registros.
nskip = 16  ;  próximos 8 registros.
nskip = 8   ;  volta ... e assim por diante....

ou seja, vc. vai incrementando nSkip (8 em 8 no seu caso)ou diminuindo o 
valor quando quiser  voltar.

Espero ter ajudado.

abraço!







Mais detalhes sobre a lista de discussão lista