LOCATE 命令
概念信息
搜索匹配指定值或条件的第一个记录,或者移至指定的记录号。
语法
LOCATE {IF 测试 <WHILE 测试> <FIRST 范围|NEXT 范围>|RECORD 数字}
参数
| 名称 | 描述 |
|---|---|
|
IF 测试 |
要搜索的值或条件。您必须将字符字面量值放在引号中,将日期时间值放在反引号中。 |
|
WHILE 测试 可选 |
一个条件表达式,它必须为真以便处理每个记录。该命令被一直执行到条件的计算结果为假或者到达表的末尾为止。 说明 如果您将 WHILE 与 FIRST 或 NEXT 结合使用,请在达到一个限制时立即记下处理步骤。 |
| FIRST 范围 | NEXT 范围 可选 |
要处理的记录数:
请使用范围指定要处理的记录数。 如果您省略 FIRST 和 NEXT,则会默认处理所有记录。 |
|
RECORD 编号 |
要定位的记录号。 |
示例
查找与指定值匹配的第一个记录
下列示例说明如何使用 LOCATE 在表中查找特定值的第一个实例:
LOCATE IF Vendor_Name = "United Equipment"
LOCATE IF Vendor_Name = "Uni"
LOCATE IF 发票金额 > 1000
LOCATE IF 发票日期 = `20141231`
查找与指定的条件或表达式匹配的第一个记录
下列示例说明如何使用 LOCATE 在表中查找特定条件或表达式的第一个实例:
LOCATE IF Vendor_Name = "United Equipment" AND Invoice_Amount > 1000 AND Invoice_Date > `20140930`
LOCATE IF Vendor_City = v_city
按记录号查找记录
以下示例说明如何使用 LOCATE 移至表中的特定记录:
LOCATE RECORD 50
备注
有关此命令工作方式的详细信息,请参阅选择第一个匹配记录。
工作原理
使用 LOCATE 命令可直接移至表中匹配指定值或条件的第一个记录。
如果找到指定的值或条件,将选择表中的首个匹配记录。如果找不到指定的值或条件,则表会定位到第一个记录。
您还可以使用 LOCATE 直接移至特定记录号
LOCATE 与 FIND 和 SEEK 之比较
与 FIND 和 SEEK 命令,LOCATE 命令并不局限于搜索索引表或单个字符域。使用 LOCATE,您可以搜索任何类型的字面量,或搜索使用任何数据类型或数据类型混合的表达式。
当用于搜索非索引表时,LOCATE 命令必须顺序处理表中的每条记录,因此可能比 FIND 和 SEEK 慢得多。所需的处理时间依赖于表的大小、匹配记录的位置以及您是否使用 WHILE、FIRST 或 NEXT 减小搜索的范围。
支持不完全匹配
对于字符搜索,支持不完全匹配。搜索值可被包含在要搜索的一个或多个域中更长的值中。但是,搜索值必须出现在域的开头才能形成匹配。
启用或禁用不完全匹配
您可以使用 SET 命令或者选项对话框中的设置启用或禁用不完全匹配:
| 启用不完全匹配 | 禁用不完全匹配 |
|---|---|
|
指定:SET EXACT OFF 或 取消选择:选项对话框中的精确字符比较(工具 > 选项 > 表) 结果:搜索值可被包含在要搜索的一个或多个域中更长的值中。搜索值必须出现在域的开头才能构成匹配。 |
指定:SET EXACT ON 或 选择:选项对话框中的精确字符比较(工具 > 选项 > 表) 结果:搜索值必须完全匹配域中的值才能构成匹配。 |
有关 SET EXACT 的详细信息,请参阅SET 命令。
有关精确字符比较选项的详细信息,请参阅表选项。