Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Composition Setup
import.css=/download/attachments/327912/newLayout.css

Pagetitle
DBSkip
DBSkip

Função: DBSkip

Desloca

...

para

...

outro

...

registro

...

na

...

tabela

...

corrente.

Sintaxe

DBSkip ( [ nRegistros] ) --> Nil

 

NomeTipoDescriçãoObrigatórioReferência
nRegistrosNuméricoIndica 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, se negativo, ao início da tabela. O valor padrão é 1.  

 

Bloco de código
collapsefalse
DBSkip()

...

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".

Exemplos

...

Bloco de código
languagecpp
themeEclipse
linenumberstrue
collapsefalse
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 

...

Advanced Protheus 6.09 , Advanced Protheus 7.10 , Microsiga Protheus 8.11 , Protheus 10 , TOTVS Application Server 10 , ByYou Application Server

...

"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