Freigeben über


_DBUnlock( ), API-Bibliotheksroutine

Gibt alle vom Benutzer festgelegten Sperrungen frei, die sich auf die im angegebenen Arbeitsbereich vorhandenen Datensätze oder Datei beziehen.

void _DBUnlock(int workarea)
int workarea;               /* Work area. */

Beispiel

Im folgenden Beispiel wird mit _DBUnlock( ) die Sperrung aller Datensätze der im aktuellen Arbeitsbereich geöffneten Tabelle aufgehoben. Der Visual FoxPro-Code demonstriert _DBUnlock( ) und überprüft die korrekte Ausführung.

Visual FoxPro-Code

SET LIBRARY TO DBUNLOCK
DO CreateTest
USE Test SHARED
GO 2
= XRLOCK()
LIST STAT  && shows that record #2 is locked
= XUNLOCK()
LIST STAT  && shows no records are locked
= XFLOCK()
LIST STAT  && shows that whole DBF is locked
= XUNLOCK()
LIST STAT  && shows no records are 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);
}
FAR xUnLockFile(ParamBlk FAR *parm)
{
   _DBUnLock(-1);
}
FoxInfo myFoxInfo[] = {
   {"XRLOCK",  (FPFI) xLockRecord, 0, ""},
   {"XFLOCK",  (FPFI) xLockFile, 0, ""},
   {"XUNLOCK", (FPFI) xUnLockFile, 0, ""},
};
FoxTable _FoxTable = {
   (FoxTable FAR *) 0, sizeof(myFoxInfo)/sizeof(FoxInfo), myFoxInfo
};
FoxTable _FoxTable = {
   (FoxTable FAR *) 0, sizeof(myFoxInfo)/sizeof(FoxInfo), myFoxInfo
};

Siehe auch

_DBAppend( ), API-Bibliotheksroutine | _DBLock( ), API-Bibliotheksroutine | _DBReplace( ), API-Bibliotheksroutine | _DBStatus( ), API-Bibliotheksroutine | _DBWrite( ), API-Bibliotheksroutine