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. |
|
|
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
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas