Freigeben über


_DBSkip( ), API-Bibliotheksroutine

_DBSkip( ) verschiebt den Datensatzzeiger im angegebenen Arbeitsbereich um die angegebene Anzahl an Datensätzen.

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

Hinweise

_DBSkip( ) berücksichtigt die aktiven Index- und Filterausdrücke genauso wie der Visual FoxPro-Befehl SKIP. Der Abstand kann positiv oder negativ sein. _DBSkip( ) gibt die Datensatznummer des neuen Datensatzes zurück.

Verwenden Sie DBStatus( ), um zu überprüfen, ob das Dateiende oder der Dateianfang erreicht wurde. Wenn Sie versuchen, vom Dateiende bzw. Dateianfang aus vor- bzw. zurückzugehen, gibt _DBSkip( ) eine negative ganze Zahl zurück, deren absoluter Wert eine Visual FoxPro-Fehlernummer darstellt.

Weitere Informationen zum Erstellen einer API-Bibliothek und ihrer Integration in Visual FoxPro finden Sie unter Zugreifen auf die Visual FoxPro-API.

Beispiel

Das folgende Beispiel orientiert sich am Visual FoxPro-Befehl SKIP.

Visual FoxPro-Code

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-Code

#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
};

Siehe auch

_DBRecCount( ), API-Bibliotheksroutine | _DBRecNo( ), API-Bibliotheksroutine | Zugreifen auf die Visual FoxPro-API | _DBStatus( ), API-Bibliotheksroutine