Deslocando um Registro de um Alias/Tabela com DBSkip em ADVPL

Tempo de leitura: 2 minutos

A função DBSkip em ADVPL desloca/move um registro de uma alias/tabela corrente para o próximo registro ou anterior, dependendo do valor do parâmetro informado. Ela também é uma das Funções de Acesso a Banco de Dados / SQL no Protheus em ADVPL. 

 

Sintaxe:

DBSkip(nReg)

 

Parâmetro(s):

Nenhum

Retorno:

 

 

Observações:

  • Essa função é utilizada para deslocar o ponteiro de registro da tabela para outro registro a partir do registro atual. O deslocamento é lógico, ou seja, leva em consideração a ordem no índice atualmente em uso, e também a expressão de filtro, caso exista.
  • O uso da DBSkip sem uma tabela aberta resultará na mensagem de erro: “Work area not in use”.

 

 

Exemplo da função DBSkip em ADVPL:

//Bibliotecas
#Include "Protheus.ch"
#INCLUDE "TBICONN.CH"
#INCLUDE "topconn.ch"
#include "TOTVS.CH"

/*/{Protheus.doc} DBSkip
Exemplo da função DBSkip em ADVPL
@type function
@author Adilio Costa
@since 15/08/2025
@version 1.0
@?Inscreva-se no Blog ProtheusAdvpl:
https://www.protheusadvpl.com.br
@?Inscreva-se no Canal ProtheusAdvpl:
https://www.youtube.com/protheusadvpl
@?Siga-nos no Instagram:
https://www.instagram.com/protheusadvpl
@?Conheça os Cursos e Formações do Protheus:
https://cursos-e-formacoes-protheusadvpl.gr-site.com/

@Participe de nossas comunidades no WhatsApp:
-Comunidade Protheus Backoffice:https://chat.whatsapp.com/KMUIAjwZ6EZ6eAHsLkPTyb
-Comunidade Protheus-RH:https://chat.whatsapp.com/L5dUyAna6xU4ylG5DUgfOW
-Comunidade Protheus-Programação:https://chat.whatsapp.com/LsD6z0apdqKHlOz67bcaEn
-Comunidade Protheus-Framework:https://chat.whatsapp.com/BzUFpjaSnTC3vtsfa77jmG


|Se esse conteúdo foi útil pra você nos ajude divulgando
ele e nossas redes sociais!!|
/*/

User Function fDBSkip()
	Local aArea  := GetArea()

	//Seleciona a tabela SYA
	DBSelectArea('SYA')
	SYA->(DBSetOrder(1))

	While !(SYA->(Eof()))

		//Deslocando para o próximo registro de SYA
		SYA->(DBSkip())

	EndDo

	SYA->(DBGoTop())

	While !(SYA->(Eof()))

		//Deslocando 2 registros de SYA
		SYA->(DBSkip(2))

	EndDo


	SYA->(DBGoTop())

	While !(SYA->(Eof()))

		//Deslocando para o registro anterior
		SYA->(DBSkip(-1))

	EndDo




	//Restaura a área
	RestArea(aArea)
Return

 

 

É isso aí, finalizamos aqui mais um post no Blog ProtheusAdvpl. Caso tenha ficado alguma dúvida deixe seu comentário ou nos envie um e-mail para adiliocosta@protheusadvpl.com.br, até um próximo post, grande abraço e fica com Deus.

Link(s) de referência(s):

Receba as últimas atualizações do ProtheusAdvpl
Deixe seu melhor email
Nós respeitamos sua privacidade.