_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