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

Query de Recno e posicionamento com DbGoTo

Separa o cursor SQL da tabela real posicionada.

Query de Recno e posicionamento com DbGoToAdvPL
01 · VISÃO GERAL

Visão geral

Uma query de recno seleciona R_E_C_N_O_ da tabela real com um apelido, converte o campo numérico quando necessário e percorre um cursor de leitura. Cada recno permite posicionar a tabela real com DbGoTo. A query não bloqueia nem valida o registro para uma alteração posterior: confirme existência, filial, exclusão e regra antes de escrever. O exemplo opera sobre um cursor já aberto e uma SA1 disponível, sem gravar; cQueryAlias precisa ser de propriedade do chamador e conter A1RECNO numérico. Salve e restaure também SA1 se a reposicionar. (Fontes: refs. 1–2.)

03 · EXEMPLO PRÁTICO

Exemplo comentado

#Include "Protheus.ch"

User Function Ed609()
    // Bloco nao invocado; cConsulta deve conter A1RECNO numerico.
    Local bPosicionar := {|cConsulta| SA1->(DbGoTo((cConsulta)->A1RECNO))}
    ConOut(ValType(bPosicionar))
Return Nil
Resultado esperado

Constrói o passo de posicionamento, sem abrir consulta nem alterar tabela. Em revisão: exemplo editorial não compilado nem executado em Protheus. Conferir includes, release, RDD e contexto antes de homologar.

BOAS PRÁTICAS
  • Na varredura, Eof e DbSkip pertencem ao cursor, não à tabela posicionada; use alias dinâmico e feche só o cursor próprio.
  • 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. Desenvolvendo queries no Protheus. Consulta em 2026-10-27.
  2. Atilio. dan-atilio/AdvPL. Maratona de Exemplos/Exemplo_535_Classe_WsRestFul.prw. Arquivo completo consultado; adaptação editorial. Consulta em 2026-10-27.
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