Functions.NetErr 方法 (Boolean) | |
检测并发冲突。
命名空间:
XSharp.Core
程序集:
XSharp.Core (在 XSharp.Core.dll 中) 版本:2.22 GA
语法 FUNCTION NetErr(
lNewError AS LOGIC
) AS LOGIC
public static bool NetErr(
bool lNewError
)
查看代码参数
- lNewError
- 类型:Boolean
设置 NetErr() 返回的值为 TRUE 或 FALSE。设置 NetErr() 允许运行时错误处理程序控制某些并发控制错误的处理方式。
返回值
类型:
Boolean
如果发生并发冲突或通过
lNewError 参数程序性设置为 TRUE,则返回 TRUE;否则返回 FALSE。
初始值为 FALSE。
备注
NetErr() 是由某些操作设置的全局标志,用于测试以下情况的并发控制冲突:
尝试的操作
NetErr() 为 TRUE
使用 APPEND BLANK 或 DBAppend() 追加空白记录
如果另一个进程在进行文件锁定或记录锁定 LastRec() + 1(例如,同时追加空白操作)
以共享或独占模式打开文件(例如,使用 USE 或 DBUseArea())
如果另一个进程独占使用该文件
以独占模式打开文件(例如,使用 USE...EXCLUSIVE 或 DBUseArea(),并将 lShared 设置为 FALSE)
如果另一个进程以共享或独占模式打开该文件
在这些情况下,内部结果会导致运行时错误,调用已安装的错误处理程序。
默认错误处理程序的源代码定义在 X# \SAMPLES 目录中的 ERRORSYS.PRG 文件中,在这些情况下不会显示错误消息,允许您的应用程序继续。
NetErr() 通常通过测试这些操作之一在程序中应用。
如果函数返回 FALSE,您可以执行下一个操作。
否则,您必须通过重试操作或通过使用 BREAK 或 RETURN 来处理错误。
示例
此示例演示 NetErr() 的典型用法。
如果 USE 成功,则打开索引文件并继续处理。
如果 USE 失败,则显示消息,并控制返回到最近的 BEGIN SEQUENCE 构造:
1USE customer SHARED NEW
2IF !NetErr()
3 SET INDEX TO custnum, custorders, custzip
4ELSE
5 ? "文件正在被另一个进程使用"
6ENDIF
参见