指定一次锁定尝试不成功后,Visual FoxPro 对文件或记录再次尝试加锁的次数或时间。
语法
SET REPROCESS TO nAttempts [SECONDS] | TO AUTOMATIC
参数
TO nAttempts [SECONDS]
指定初始加锁不成功后 Visual FoxPro 对文件或记录再次尝试加锁的次数。默认值为 0,最大值为 32,000。
SECONDS 指定 Visual FoxPro 对文件或记录尝试加锁的时间为 nAttempts 秒。只有当 nAttempts 大于 0 时此设置才可用。
例如,如果 nAttempts 为 30,Visual FoxPro 对记录或文件的尝试加锁次数为 30 次。如果还包括 SECONDS (SET REPROCESS TO 30 SECONDS),则Visual FoxPro 持续地对文件或记录尝试加锁的时间是 30 秒。
如果 SET STATUS 设置为 ON ,则出现系统信息(“等待锁定 ... ”)。
如果 ON ERROR 例程有效,并且一条命令对文件或记录加锁的尝试不成功,那么将执行 ON ERROR 例程。但如果是一个函数尝试加锁,那么将不执行 ON ERROR 例程且该函数返回“假”(.F.)。
如果 ON ERROR 无效,且命令试图对文件或记录加锁,但未成功时,将出现相应的警告信息(例如,“其他用户正在使用该记录”)。如果函数的加锁尝试不成功,则不显示警告信息,而是由函数返回“假”(.F.)。
如果在 nAttempts 为 0(默认值)时,发出命令或使用函数来尝试锁定记录或文件,那么 Visual FoxPro 将无限制地尝试锁定记录或文件。在尝试锁定记录或文件时,Visual FoxPro 显示系统信息“尝试锁定 ...按 ESC 键取消”。等待过程中,如果记录或文件可以加锁时,则锁定该记录或文件并清除显示的系统信息。一个函数尝试加锁成功时,该函数返回“真”(.T.)。
如果按 ESC 键响应系统信息,则出现相应的警告信息(例如,“记录正被其他用户使用”)。如果是一个函数尝试加锁,则不出现此类信息,而由函数返回“假”(.F.)。
如果 ON ERROR 例程有效且一条命令正在对文件或记录尝试加锁,则 ON ERROR 优先于对记录或文件再次的加锁尝试。这种情况下,ON ERROR 例程立即执行。Visual FoxPro 不再尝试对文件或记录进行加锁,也不显示系统信息。
如果 nAttempts 为 1,Visual FoxPro 将无限制地尝试锁定记录或文件。这时即使按 ESC 键也不能取消加锁尝试,并且不执行 ON ERROR 例程。
只有当 SET STATUS 设置为 ON 时,Visual FoxPro 才显示“等待锁定 ... ”。
如果尝试锁定的记录或文件已被其他用户加锁,那么只有等到该用户解锁后才能加锁。
TO AUTOMATIC
指定 Visual FoxPro 无限制地尝试锁定记录或文件。(SET REPROCESS TO 2 与此命令等价。)
Visual FoxPro 在尝试锁定记录或文件时显示系统信息“尝试锁定 ...按 ESC 键取消”。如果要加锁的记录或文件可用,就加上锁并清除显示的系统信息。如果使用函数来加锁,函数返回“真”(.T.)。
如果 ON ERROR 例程无效且按 ESC 键来响应系统信息,则出现相应的警告信息(例如,“其他用户正在使用该记录”)。这种情况下如果函数尝试加锁不成功,将不显示警告信息,而由函数返回“假”(.F.)。
如果 ON ERROR 例程有效且按下了 ESC 键,则执行 ON ERROR 例程。如果是函数尝试加锁,则不执行 ON ERROR 例程,而且函数返回“假”(.F.)。
有关在网络上对记录和文件加锁以及共享表的详细内容,请参阅《开发指南》第十七章“共享访问程序设计”。
说明
第一次对记录或文件尝试加锁不会总是成功的。在网络上,记录或文件经常被其他用户锁定。SET REPROCESS 确定初始加锁尝试不成功时 Visual FoxPro 是否继续尝试锁定记录或文件。既可指定继续尝试加锁的次数,也可指定继续尝试加锁的时间限制。ON ERROR 例程影响如何处理不成功的加锁尝试。
SET REPROCESS 的作用范围是当前数据工作期。