Query de Recno e posicionamento com DbGoTo
Separa o cursor SQL da tabela real posicionada.
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.)
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 NilConstró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.
- 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.

Comentários
Ainda não há comentários aprovados.
Entre com Google ou Microsoft para comentar.