Снимает все установленные пользователем блокировки на записях или на весь файл в заданной рабочей области workarea.
void _DBUnlock(int workarea) int workarea; /* Рабочая область. */ |
Пример
Следующий пример испольпользует процедуру _DBUnlock( ), чтобы разблокировать записи в таблице, открытой в текущей рабочей области. Данный Visual FoxPro код демонстрирует _DBUnlock( ) и проверяет правильно ли он отработал.
Visual FoxPro Код
![]() | |
---|---|
SET LIBRARY TO DBUNLOCK DO CreateTest USE Test SHARED GO 2 = XRLOCK() LIST STAT && показывает, что записть #2 заблокирована = XUNLOCK() LIST STAT && показывает, что нет заблокированных записей = XFLOCK() LIST STAT && показывает, что весь DBF файл заблокирован = XUNLOCK() LIST STAT && показывает, что нет заблокированных записей 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 Код
![]() | |
---|---|
#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 }; |