Freigeben über


_DBLock( ), API-Bibliotheksroutine

Versucht, den aktuellen Datensatz oder die Tabelle zu sperren, die im mit workarea angegebenen Arbeitsbereich geöffnet ist.

int _DBLock(int workarea, int RecOrFile)
int workarea;               /* Work area. */
int RecOrFile;               /* What is to be locked. */

Hinweise

Der Parameter RecOrFile kann den Wert DBL_RECORD haben, um den aktuellen Datensatz anzugeben, oder den Wert DBL_FILE, um die Tabellendatei anzugeben. _DBLock( ) gibt Wahr (eine ganze Zahl ungleich 0) zurück, wenn die Sperrung erfolgt ist. Konnte die Sperrung nicht ausgeführt werden, gibt _DBlock( ) Falsch (0) zurück.

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

Beispiel

Im folgenden Beispiel werden zwei API-Funktionen zur Verfügung gestellt, die Sie aus Visual FoxPro aufrufen können: XRLOCK( ) zum Sperren des aktuellen Datensatzes im aktuellen Arbeitsbereich und XFLOCK( ) zum Sperren der im aktuellen Arbeitsbereich geöffneten Tabelle. XRLOCK( ) ruft _DBLock (-1, DBL_RECORD( )) auf, und XFLOCK( ) ruft _DBLock (-1, DBL_FILE( )) auf.

Visual FoxPro-Code

SET LIBRARY TO DBLOCK  
DO CreateTest
USE Test SHARED
GO 2
= XRLOCK()
LIST STAT  && shows that record #2 is locked
= XFLOCK()
LIST STAT  && shows that whole DBF is locked

PROCEDURE CreateTest

CREATE TABLE test (ABC C(20))
APPEND BLANK
REPLACE ABC WITH "Golly month of"
APPEND BLANK
REPLACE ABC WITH "A twelfth of"
APPEND BLANK
REPLACE ABC WITH "Hello, world"
APPEND BLANK
REPLACE ABC WITH "When in the"
GO TOP

RETURN

C-Code

#include <pro_ext.h>

FAR xLockRecord(ParamBlk FAR *parm)
{
   _DBLock(-1, DBL_RECORD);
}

FAR xLockFile(ParamBlk FAR *parm)
{
   _DBLock(-1, DBL_FILE);
}

FoxInfo myFoxInfo[] =
{
   {"XRLOCK", (FPFI) xLockRecord, 0, ""},
   {"XFLOCK", (FPFI) xLockFile, 0, ""},
};

FoxTable _FoxTable =
{
   (FoxTable FAR *) 0, sizeof(myFoxInfo)/sizeof(FoxInfo), myFoxInfo
};

Siehe auch

_DBAppend( ), API-Bibliotheksroutine | _DBUnlock( ), API-Bibliotheksroutine | Zugreifen auf die Visual FoxPro-API | Übergeben von Parametern an Visual FoxPro API-Funktionen