• A Confluence está sendo executada atualmente com todos os plugins que não são do sistema desabilitados. Pode haver perda de algumas funcionalidades

Árvore de páginas

Desloca para outro registro na tabela corrente.

Sintaxe

DBSkip( [ nReg ] )

Parâmetros

Nome

Tipo

Descrição

Obrigatório

Referência

nReg

numérico

Indica o número de registros que serão deslocados a partir do corrente.
Se o valor for positivo, o deslocamento será em direção ao final da tabela. Caso seja negativo, ao início da tabela.
Valor padrão: 1.

 

 

Retorno

Nome

Tipo

Descrição

uRet

nil

Sempre retorna nulo.

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".
  • Caso o deslocamento seja negativo (registros anteriores), e passe do início da tabela, o primeiro registro é posicionado e a flag de início da tabela (BOF) é setado.
  • Caso o deslocamento seja positivo (registros posteriores), e passe do final da tabela, a tabela é posicionada no registro "LastRec()+1", e a flag de final de arquivo (EOF) é setada.
    Neste último caso, se a RDD for TOPCONN, o Recno retornado será por convenção "LastRec() + 5000".
  • O comportamento da DBSkip é influenciado pelo uso do comando SET DELETED.

Exemplos

static function CreateTable()
  TCDelFile('T1')
  DBCreate('T1', {{"FIELD_NAME", "C", 10, 0}, ;
                  {"FIELD_TYPE", "C", 10, 0}}, 'TOPCONN')
return

user function test()
  Local cT1 := "T1"
  
  TCLink()
  CreateTable()

  DBUseArea(.F., 'TOPCONN', cT1, (cT1), .F., .F.)
  
  for nI := 1 to 20
    (cT1)->( DBAppend( .F. ) )
    (cT1)->FIELD_NAME := "name" + cValtoChar(nI)
    (cT1)->FIELD_TYPE := "string"
    (cT1)->( DBCommit() )
  next
  
  DBGoTop()
  DBSkip(-1) //esta execução, após o DBGoTop, posiciona no início (BOF) da tabela
  msgInfo("Current Record: " + cValtoChar( recno() ))
  
  DBSkip(10) //desloca 10 registros "para frente"
  msgInfo("Current Record: " + cValtoChar( recno() ))
  
  DBSkip(-5) //desloca 5 registros "para trás"
  msgInfo("Current Record: " + cValtoChar( recno() ))
  
  DBSkip() //desloca 1 registro "para frente", respeitando seu valor default (1)
  msgInfo("Current Record: " + cValtoChar( recno() ))
  
  DBSkip(100)//desloca 100 registros "para frente", mas como só há 20 registros na tabela, posiciona no fim da tabela (EOF)
  msgInfo("Current Record: " + cValtoChar( recno() ))
  
  DBCloseArea()
  TCUnlink()
return
  • Sem rótulos