[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