点击或拖拽改变大小

Functions.Flock 方法

X#
锁定已打开并共享的数据库文件。

命名空间:  XSharp.RT
程序集:  XSharp.RT (在 XSharp.RT.dll 中) 版本:2.22 GA
语法
 FUNCTION Flock() AS LOGIC
查看代码

返回值

类型:Boolean
如果锁定成功则返回 TRUE;否则返回 FALSE。
备注
如果数据库文件以共享模式打开,在尝试任何更新数据库文件的操作之前,必须获得文件锁。 对于每次调用 FLock(),都会尝试锁定数据库文件(以及其他相关文件,如索引和备忘录文件),并将结果作为逻辑值返回。
如果另一个进程当前持有相同数据库文件的文件锁或记录锁,则文件锁定失败。 如果 FLock() 成功,文件将被锁定,其他进程将被阻止进行更新,直到锁被释放。FLock() 提供共享锁,允许其他用户对锁定文件进行只读访问,而只允许当前进程修改它。 文件锁将一直有效,直到您关闭数据库、显式解锁(例如使用 DBUnLock()),或尝试另一个文件或记录锁(使用 RLock() 或 DBRLock())。
默认情况下,此函数在当前选定的工作区上操作。
可以通过在别名表达式中指定或调用接受工作区参数(工作区编号或别名)的重载来使其在未选定的工作区上操作。
这个特性很有用,因为 FLock() 不会自动尝试锁定相关文件。
示例
此示例使用 FLock() 对 INVENTORY.DBF 中的价格进行批量更新:
X#
1USE inventory SHARED NEW
2IF Inventory->FLock()
3    REPLACE ALL Inventory->Price WITH ;
4            Inventory->Price * 1.1
5ELSE
6    QOut("文件不可用")
7ENDIF
此示例尝试在未选择的工作区中锁定文件:
X#
1USE sales NEW
2USE customer NEW
3IF !Sales->FLock()
4    QOut("Sales 正在使用中")
5ENDIF
参见