尝试锁定当前表或指定表。
语法
FLOCK([nWorkArea | cTableAlias])
参数
nWorkArea
指定表所在的工作区,flock( ) 函数对此表进行锁定。
如果指定工作区没有打开的表,flock( ) 函数的返回值为“假”(.F.)。
cTableAlias
指定待锁定表的别名。
如果指定的表别名不存在,Visual FoxPro 将产生错误信息。
返回值类型
逻辑型
说明
如果成功锁定该表,flock( ) 函数返回“真”(.T.);而当该表或表中的某个记录已经被另一用户锁定,flock( ) 函数返回“假”(.F.)。
如果省略可选参数,flock( ) 函数对当前选定工作区中的已打开表进行锁定。
附注
如果 flock( ) 函数锁定表的操作失败,返回“假”(.F.),但并不产生错误信息。因此,flock( ) 函数不触发 ON ERROR
例程。
当某个表被锁定时,对表加锁的用户可以对此表进行读和写访问,网络上的其他用户则只能对此表进行只读访问。有关如何锁定一个表并禁止其他用户访问该表的详细内容,请参阅 SET EXCLUSIVE 和
USE。
对于锁定的表,只有加锁的用户才能解锁。可以通过执行 UNLOCK 命令、关闭该表或退出 Visual FoxPro 来解锁锁定的表。使用 USE、CLEAR ALL 或 CLOSE DATABASES 命令可以关闭表。
默认情况下,flock( ) 函数对一个表只进行一次锁定尝试,使用 SET REPROCESS 可以在第一次尝试失败后自动重试对表的锁定操作。SET REPROCESS 可以给定尝试加锁的次数,也可以给定在初次锁定操作不成功时,加锁尝试持续的时间。有关详细内容,请参阅
SET REPROCESS。
可以用 SET RELATION 命令在两个或更多的表之间建立关系。如果某个表与一个或多个表相关,则在此表上设置文件锁定并不会引起在相关表上设置文件锁定。必须在相关表上明确设置文件锁或移去文件锁。
对记录和文件加锁以及通过网络共享表的详细内容,请参阅《开发指南》的第十九章“共享访问程序设计”。