Usina BRAdvPL Guia
Entrar
← Todos os tópicos
GUIA PRÁTICOEm revisão

DbSkip e navegação sequencial

Percorre uma sequência limitada com avanço e teste de fim.

DbSkip e navegação sequencialAdvPL
01 · VISÃO GERAL

Visão geral

Um loop precisa definir ponto inicial, condição de fim e avanço. DBGoTop inicia na primeira posição lógica; DBSkip respeita ordem e filtro, e EOF deve ser testado antes de acessar campos. O exemplo percorre no máximo três registros visíveis da tabela própria EDTRB e apenas conta, sem expor dados. Filtros e configuração de excluídos influenciam a contagem; isso não é total geral da tabela. O alias fica na posição alcançada, que pode ser EOF. (TOTVS, s.d., refs. 1–2)

03 · EXEMPLO PRÁTICO

Exemplo comentado

#Include "Protheus.ch"
User Function Ed341()
    Local nContagem := 0
    If Select("EDTRB") > 0
        EDTRB->(DBGoTop())
        While !EDTRB->(Eof()) .And. nContagem < 3
            nContagem++
            EDTRB->(DBSkip(1))
        EndDo
        ConOut(cValToChar(nContagem))
    EndIf
Return Nil
Resultado esperado

Contagem entre zero e três, dependendo dos registros visíveis. Em revisão: exemplo editorial não compilado nem executado em Protheus. Conferir includes, release, RDD e contexto antes de homologar.

BOAS PRÁTICAS
  • Não retirar o avanço do loop. Garantir contexto de leitura sem alterações pendentes; restaurar área e posição quando exigido pelo chamador.
  • Em revisão: exemplo editorial não compilado nem executado em Protheus. Conferir includes, release, RDD e contexto antes de homologar.

Conteúdos relacionados

REFERÊNCIAS
  1. TOTVS. DBSkip. TDN. Consulta em 2026-10-26.
  2. TOTVS. DBGoTop. TDN. Consulta em 2026-10-26.
Situação
Em revisão
Página criada em
Última revisão em
Idioma original
Português
Revisão
Usina.BR
0 comentário(s) aprovado(s)

Comentários

Ainda não há comentários aprovados.

Entre com Google ou Microsoft para comentar.

Powered by Usina Docs · Alpha