Пытается блокировать текущую запись или таблицу, открытую в рабочей области, определяемой workarea.
int _DBLock(int workarea, int RecOrFile) int workarea; /* Work area. */ int RecOrFile; /* What is to be locked. */ |
Примечания
Параметр RecOrFile может иметь значение DBL_RECORD, для указания текущей записи или DBL_FILE, для указания табличного файла. _DBLock() возвращает True (число, большее нуля) если попытка блокировки удалась, или False (0) в противном случае.
Для получения более подробной информации о том, как создать библиотеку API и интегрировать ее с Visual FoxPro, смотрите описание Доступ к Visual FoxPro API.
Пример
Приведенный ниже пример предоставляет две функции API, которые вы можете вызвать из Visual FoxPro: XRLOCK(), которая блокирует текущую запись текущей рабочей области; и XFLOCK(), которая блокирует таблицу, открытую в текущей рабочей области. XRLOCK() вызывает _DBLock( – 1, DBL_RECORD()), а XFLOCK() вызывает _DBLock( – 1, DBL_FILE()).
Код
Visual FoxPro
![]() | |
---|---|
SET LIBRARY TO DBLOCK DO CreateTest USE Test SHARED GO 2 = XRLOCK() LIST STAT && показывает, что запись #2 заблокирована = XFLOCK() 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); } FoxInfo myFoxInfo[] = { {"XRLOCK", (FPFI) xLockRecord, 0, ""}, {"XFLOCK", (FPFI) xLockFile, 0, ""}, }; FoxTable _FoxTable = { (FoxTable FAR *) 0, sizeof(myFoxInfo)/sizeof(FoxInfo), myFoxInfo }; |
Смотрите
также

© Microsoft Corporation. All rights reserved.
Перевод выполнен JS.