Functions.DbSetFilter 方法 | |
设置过滤条件。
命名空间:
XSharp.RT
程序集:
XSharp.RT (在 XSharp.RT.dll 中) 版本:2.22 GA
语法 FUNCTION DbSetFilter(
cbCondition,
cCondition
) AS LOGIC CLIPPER
[ClipperCallingConventionAttribute(new string[] { ... })]
public static bool DbSetFilter(
__Usual cbCondition = default,
__Usual cCondition = default
)
查看代码参数
- cbCondition (Optional)
- 类型:__Usual
以可执行形式表达过滤条件的代码块。 - cCondition (Optional)
- 类型:__Usual
一个可选的字符值,以文本形式表达过滤条件。
如果省略 cCondition,DBFilter() 函数将为该工作区返回一个空字符串。
返回值
类型:
Boolean
如果当前记录满足过滤条件则返回 TRUE;否则返回 FALSE。
备注
DBSetFilter() 设置逻辑过滤条件。
默认情况下,此函数在当前选定的工作区上操作。
可以通过在别名表达式中指定来使其在未选定的工作区上操作。
设置过滤器后,不满足过滤条件的记录在逻辑上不可见。
也就是说,对逻辑记录进行操作的数据库操作将不会考虑这些记录。
过滤表达式可以是代码块(
bCondition)或同时包含代码块和等效文本(
cCondition)。
如果同时提供了两种版本,它们必须表达相同的条件。
DBSetFilter() 执行与 SET FILTER 命令相同的功能。
有关更多信息,请参阅 SET FILTER 命令。
提示: |
---|
如果您使用的 RDD 支持优化,请使用 SET OPTIMIZE 来控制 RDD 是否会根据工作区中可用的顺序优化过滤器搜索。
|
提示: |
---|
逻辑记录:
DBSetFilter() 影响记录的逻辑可见性(见上文)。
副作用: 设置过滤条件只保证按上述方式限制某些记录的可见性。
过滤表达式不一定在任何特定时间、以任何特定方式或在任何特定记录或一系列记录上进行评估。
如果过滤表达式依赖于数据库文件或工作区之外的信息,其效果是不可预测的。
如果过滤表达式改变了工作区的状态(例如,移动到不同的记录或改变记录的内容),其效果是不可预测的。
评估上下文:
当评估过滤表达式时,相关的工作区会自动被选为当前工作区;之后会自动恢复先前选择的工作区。
|
示例
此示例将数据访问限制为 Age 字段值小于 40 的记录:
1USE employee NEW
2DBSetFilter({|| Age < 40}, "Age < 40")
3DBGoTop()
参见