Functions.Found 方法 | |
确定上一次搜索操作是否成功。
命名空间:
XSharp.RT
程序集:
XSharp.RT (在 XSharp.RT.dll 中) 版本:2.22 GA
语法 FUNCTION Found() AS LOGIC
public static bool Found()
查看代码返回值
类型:
Boolean
如果上次搜索成功则返回 TRUE;否则返回 FALSE。如果工作区中没有打开的数据库,Found() 也将返回 FALSE。
备注
Found() 用于确定搜索操作(如 DBSeek()、DBLocate()、DBContinue() 或 DBSetRelation())是否成功。当执行这些命令时,如果有匹配项,Found() 设置为 TRUE;否则设置为 FALSE。
如果搜索命令是 LOCATE 或 CONTINUE,匹配项是满足范围和条件的下一条记录。
如果搜索命令是 FIND、SEEK 或 SET RELATION,匹配项是控制顺序中等于搜索参数的第一个键。
如果键值等于搜索参数,Found() 为 TRUE;否则为 FALSE。
Found() 的值保持不变,直到执行另一个记录移动命令。
除非该命令是另一个搜索命令,否则 Found() 会自动设置为 FALSE。您也可以使用 DBSetFound() 手动设置此标志。
每个工作区都有一个 Found() 值。
这意味着如果一个工作区与子工作区设置了关系,在子工作区中查询 Found() 如果有匹配项则返回 TRUE。
默认情况下,此函数在当前选定的工作区上操作。
可以通过在别名表达式中指定或调用接受工作区参数(工作区编号或别名)的重载来使其在未选定的工作区上操作。
示例
此示例说明了记录移动命令后 Found() 的行为:
1USE sales INDEX sales
2SEEK "1000"
3QOut(Found())
4SEEK "100"
5QOut(Found())
6SKIP
7QOut(Found())
此示例使用别名表达式测试未选定工作区中的 Found() 值:
1USE sales INDEX sales NEW
2USE customer INDEX customer NEW
3SET RELATION TO CustNum INTO sales
4SEEK "Smith"
5QOut(Found(), Sales->Found())
此代码片段使用 Found() 处理所有键值为 "Smith" 的 CUSTOMER 记录,以确定键值何时发生变化:
1USE customer INDEX customer NEW
2SEEK "Smith"
3DO WHILE Found()
4 .
5 . <paramref name="语句" />
6 .
7 SKIP
8 LOCATE REST WHILE Name == "Smith"
9ENDDO
参见