主题:[讨论]关于Flock( )
[quote]Visual FoxPro 9.0 语言参考
FLOCK( ) 函数 请参阅 示例 全部折叠 全部展开 尝试锁定当前表或指定表。
FLOCK([nWorkArea | cTableAlias])
参数 nWorkArea
指定表所在的工作区,FLOCK( ) 函数对此表进行锁定。如果指定工作区没有打开的表,FLOCK( ) 函数的返回值为“假”(.F.)。
cTableAlias
指定待锁定表的别名。 注意:
如果指定的表别名不存在,Visual FoxPro 将产生错误信息。
返回值 逻辑型。如果成功锁定该表,FLOCK( ) 函数返回“真”(.T.);[color=ff00ff]而在下列条件下 FLOCK( ) 函数返回“假”(.F.):[/color]
表或表中的记录已经被其它用户锁定。
表没有在你指定的工作区中打开。
注意:
如果 FLOCK( ) 函数锁定表的操作失败,返回“假”(.F.),[color=ff00ff]但并不产生错误信息。因此,FLOCK( ) 函数不触发 ON ERROR 例程。 [/color][/quote]
嗯,让我想不明白的是,在我的使用过程中,
这个函数在没有设置 SET REPROCESS TO 3 SECONDS 的时候死等其他用户解锁.
别人解锁后,自动往下运行,别人不解锁,就只好干等.
在设置 SET REPROCESS TO 3 SECONDS 后,锁定失败时没有返回函数值,而是出错,
于是我又设置了 On Error Return ,结果发现跟上面彩色语句不符,
是不是我在什么地方没弄明白?
FLOCK( ) 函数 请参阅 示例 全部折叠 全部展开 尝试锁定当前表或指定表。
FLOCK([nWorkArea | cTableAlias])
参数 nWorkArea
指定表所在的工作区,FLOCK( ) 函数对此表进行锁定。如果指定工作区没有打开的表,FLOCK( ) 函数的返回值为“假”(.F.)。
cTableAlias
指定待锁定表的别名。 注意:
如果指定的表别名不存在,Visual FoxPro 将产生错误信息。
返回值 逻辑型。如果成功锁定该表,FLOCK( ) 函数返回“真”(.T.);[color=ff00ff]而在下列条件下 FLOCK( ) 函数返回“假”(.F.):[/color]
表或表中的记录已经被其它用户锁定。
表没有在你指定的工作区中打开。
注意:
如果 FLOCK( ) 函数锁定表的操作失败,返回“假”(.F.),[color=ff00ff]但并不产生错误信息。因此,FLOCK( ) 函数不触发 ON ERROR 例程。 [/color][/quote]
嗯,让我想不明白的是,在我的使用过程中,
这个函数在没有设置 SET REPROCESS TO 3 SECONDS 的时候死等其他用户解锁.
别人解锁后,自动往下运行,别人不解锁,就只好干等.
在设置 SET REPROCESS TO 3 SECONDS 后,锁定失败时没有返回函数值,而是出错,
于是我又设置了 On Error Return ,结果发现跟上面彩色语句不符,
是不是我在什么地方没弄明白?