Share via


_DBSkip( ) (Rutina de biblioteca API)

_DBSkip( ) mueve el puntero de registro del área de trabajo especificada un número de registros especificado.

long _DBSkip(int workarea, long distance)
int workarea;               /* Work area. */
long distance;               /* Number of records to skip. */

Observaciones

_DBSkip( ) respeta las expresiones activas de índice y de filtro, al igual que el comando SKIP de Visual FoxPro. La distancia puede ser positiva o negativa. _DBSkip( ) devuelve el número del nuevo registro.

Utilice _DBStatus( ) para comprobar las condiciones de inicio y fin de archivo. Si trata de saltar más allá del final del archivo o saltar hacia atrás por delante del principio del archivo, _DBSkip( ) devuelve un número entero negativo cuyo valor absoluto corresponde a un número de error de Visual FoxPro.

Para obtener más información acerca de cómo crear una biblioteca API e integrarla con Visual FoxPro, vea Acceso a la API de Visual FoxPro.

Ejemplo

El siguiente ejemplo funciona igual que el comando SKIP de Visual FoxPro.

Código Visual FoxPro

SET LIBRARY TO DBSKIP  
ON ERROR DO expectError
DO CreateTest
USE
= DBSKIP(1)       && _Error() called: no DBF in use
USE test
GO TOP
= DBSKIP(-1)
= DBSKIP(-1)      && _Error() called: at top of file
GO BOTT
= DBSKIP(1)
= DBSKIP(1)      && _Error() called: at bottom of file
ON ERROR

PROCEDURE expectError
   ? "ERROR: " + MESSAGE()
RETURN

PROCEDURE CreateTest
   CREATE TABLE test (ABC C(20))
   APPEND BLANK
   REPLACE ABC WITH "This is record 1"
   APPEND BLANK
   REPLACE ABC WITH "This is record 2"
   APPEND BLANK
   REPLACE ABC WITH "This is record 3"
   APPEND BLANK
   REPLACE ABC WITH "This is record 4"
   GO TOP
RETURN

Código C

#include <pro_ext.h>

FAR Example(ParamBlk FAR *pblk)
{
   int RetCode;

   if ((RetCode = _DBSkip(-1, pblk->p[0].val.ev_long)) < 0) {
      _PutStr("\nError encountered in example program.");
      _Error(-RetCode);  // _DBSkip() returns negative error code
   }
   _RetInt(RetCode, 10);
}

FoxInfo myFoxInfo[] = {
   {"DBSKIP", (FPFI) Example, 1, "I"},
};
FoxTable _FoxTable = {
   (FoxTable FAR *) 0, sizeof(myFoxInfo)/sizeof(FoxInfo), myFoxInfo
};

Vea también

_DBRecCount( ) (Rutina de biblioteca API) | _DBRecNo( ) (Rutina de biblioteca API) | Acceso a la API de Visual FoxPro | _DBStatus( ) (Rutina de biblioteca API)