SQLSelect.Notify 方法 | |
提供一个方法,该方法在服务器的操作方法完成某些重要事件后自动调用:列已更改,服务器位置已更改,已完成某些操作。
它的标准实现是向其附加的客户端广播相同的通知。
命名空间:
XSharp.VO.SDK
程序集:
XSharp.VOSQLClasses (在 XSharp.VOSQLClasses.dll 中) 版本:2.22 GA
语法 VIRTUAL METHOD Notify(
kNotification AS LONG,
uDescription AS USUAL
) AS USUAL
public override __Usual Notify(
int kNotification,
[DefaultParameterValueAttribute(0, 1)] __Usual uDescription
)
查看代码参数
- kNotification
- 类型:Int32
标识事件,指定为下表中的常量之一。 - uDescription
- 类型:__Usual
仅用于某些通知类型。请参阅下表中的描述
返回值
类型:
__Usual
如果成功则返回 TRUE;否则返回 FALSE。
备注 常量 | 描述 |
---|
NOTIFYAPPEND |
一个空白记录已附加到服务器;
服务器仍然定位在这个新记录上,并且其值尚未最终确定。
|
NOTIFYCLEARRELATION | 不会发送到数据浏览器。 |
NOTIFYCLOSE | 服务器打算关闭自身。 |
NOTIFYCOMPLETION |
服务器已完成某些不涉及重新定位服务器或更改数据的大型操作(如重新索引)。
这使客户端有机会更新用户的视觉指示,表明某些操作已完成。
|
NOTIFYDELETE | 当前记录已被删除,服务器现在根据其处理删除的规则进行定位。浏览器应相应地刷新其显示。 |
NOTIFYFIELDCHANGE | 字段已更改。uDescription
是字段名称作为符号。请注意,浏览器可能不包含具有指示名称的列。服务器只知道它有一个该名称的字段并且它已更改,并通知所有客户端以防它们感兴趣。 |
NOTIFYFILECHANGE |
服务器已执行某些对数据进行大量更改的方法;浏览器对服务器及其数据的所有了解可能已过时,应从服务器刷新所有信息以及所有依赖于数据或其位置的计算。
|
NOTIFYGOBOTTOM |
服务器已移动到其最后一条记录。许多客户端将此视为记录更改,
但数据浏览器可以将定位到末尾视为特殊情况。
|
NOTIFYGOTOP |
服务器已移动到其第一条记录。许多客户端将此视为记录更改,但数据浏览器可以将定位到顶部视为特殊情况。
|
NOTIFYINTENTTOMOVE |
服务器打算进行移动。(请注意,移动可能是由另一个客户端发起的。)浏览器应确保在移动完成之前保存其所有数据(如有必要)。标准实现检查验证状态。如果浏览器包含无效数据,用户可以选择纠正错误或放弃数据。
|
NOTIFYRECORDCHANGE |
服务器的记录位置已更改。所有客户端在任何移动后都会收到通知,以便它们可以从服务器刷新其显示。浏览器需要根据移动的距离智能地更新其显示。uDescription 可能指示移动的长度(记录的数量)。浏览器可以使用此信息进行显示优化,但不能依赖其可用性。 |
NOTIFYRELATIONCHANGE |
不会发送到数据浏览器(服务器之间的关系更改作为文件更改传输到客户端)。
|
此 Notify() 方法是链接浏览器和服务器之间自动通知的核心, 允许任何窗口更改字段值或发起移动,并确保所有 客户端窗口反映更改。
任何注册为服务器客户端的类都必须智能地响应 Notify 消息。
与定义的常量一样,您永远不应依赖常量的实际值——它们不会
必然保持不变。然而,常量确实保持其顺序:
- NOTIFYFIELDCHANGE - 最低
- NOTIFYCLOSE - .
- NOTIFYCOMPLETION - .
- NOTIFYINTENTTOMOVE - .
- NOTIFYRECORDCHANGE - .
- NOTIFYGOBOTTOM - .
- NOTIFYGOTOP - .
- NOTIFYDELETE - .
- NOTIFYAPPEND - .
- NOTIFYFILECHANGE - .
- NOTIFYRELATIONCHANGE - .
- NOTIFYCLEARRELATION - 最高
因此,您可以可靠地编写:
1IF kNotification > NOTIFYINTENTTOMOVE;
2 .AND. kNotification < NOTIFYFILECHANGE
3 ...
4ENDIF
参见