Share via


_DBUnlock( ) (Rutina de biblioteca API)

Libera todos los bloqueos obtenidos por el usuario sobre registros o sobre el archivo del área de trabajo especificada por workarea.

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

Ejemplo

En el siguiente ejemplo se utiliza _DBUnlock( ) para desbloquear todos los registros de la tabla abierta en el área de trabajo actual. El código Visual FoxPro demuestra el uso de _DBUnlock( ) y comprueba que está trabajando de forma apropiada.

Código Visual FoxPro

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ódigo C

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

Vea también

_DBAppend( ) (Rutina de biblioteca API) | _DBLock( ) (Rutina de biblioteca API) | _DBReplace( ) (Rutina de biblioteca API) | _DBStatus( ) (Rutina de biblioteca API) | _DBWrite( ) (Rutina de biblioteca API)