vfp中数据库表怎么查找记录
3个回答
展开全部
如果在编程代码中,LOCATE用的较多
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
按顺序搜索表从而找到满足指定逻辑表达式的第一个记录。
LOCATE [FOR lExpression1] [Scope] [WHILE lExpression2] [NOOPTIMIZE]
参数
FOR lExpression1
LOCATE 按顺序搜索当前表以找到满足逻辑表达式 lExpression1 的第一个记录。
若 lExpression1 是可优化表达式,则 Rushmore 优化由 LOCATE FOR 创建的查询。为了获得最佳执行效果,可在 FOR 子句中使用可优化表达式。
详细信息, 参见 SET OPTIMIZE 和 用 Rushmore 查询优化数据访问速度。
Scope
指定要定位的记录范围。只有范围内的记录才被定位。Scope 子句有 ALL、NEXT nRecords、RECORD nRecordNumber 和 REST。
LOCATE 的默认范围是所有 (ALL) 记录。
WHILE lExpression2
指定一个条件,只要逻辑表达式 lExpression2 计算值为“真”(.T.),就继续查找记录。
NOOPTIMIZE
关闭 LOCATE 的 Rushmore 优化。
详细信息, 参见 SET OPTIMIZE 和 用 Rushmore 查询优化数据访问速度。
备注
被索引的表不必已有索引。
如果使用不带 FOR 表达式的 LOCATE 命令, Visual FoxPro 定位记录指针到第一个逻辑记录上。这在使用了筛选或 DELETED 设置为 ON 时比 GO TOP 更快。
若 LOCATE 发现一个满足条件的记录,可使用 RECNO( ) 返回该记录号。若发现满足条件的记录,则 FOUND( ) 返回“真”(.T.),EOF( ) 返回“假”(.F.)。若 SET TALK 是 ON,则显示满足条件的记录号。
LOCATE 发现一个满足条件的记录之后,可执行 CONTINUE,从而在表的剩余部分寻找其他满足条件的记录。当执行 CONTINUE 时,搜索操作从满足条件的记录的下一条记录开始继续执行。可重复执行 CONTINUE,直到到达范围边界或表尾。
若找不到满足条件的记录,则 RECNO( ) 返回表中的记录数加 1,FOUND( ) 返回“假”(.F.),EOF( ) 返回“真”(.T.)。
LOCATE 和 CONTINUE 只能用于当前工作区。若选择了另一工作区,则当重选原来的工作区时可继续原来的搜索过程。
示例
在下列示例中,定位德国顾客的记录,然后显示总数。
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'Data\testdata')
USE customer && 打开 customer 表
SET TALK OFF
STORE 0 TO gnCount
LOCATE FOR ALLTRIM(UPPER(customer.country)) = 'GERMANY'
DO WHILE FOUND()
gnCount = gnCount + 1
? company
CONTINUE
ENDDO
? '总的德国客户数: '+ LTRIM(STR(gnCount))
LOCATE [FOR lExpression1] [Scope] [WHILE lExpression2] [NOOPTIMIZE]
参数
FOR lExpression1
LOCATE 按顺序搜索当前表以找到满足逻辑表达式 lExpression1 的第一个记录。
若 lExpression1 是可优化表达式,则 Rushmore 优化由 LOCATE FOR 创建的查询。为了获得最佳执行效果,可在 FOR 子句中使用可优化表达式。
详细信息, 参见 SET OPTIMIZE 和 用 Rushmore 查询优化数据访问速度。
Scope
指定要定位的记录范围。只有范围内的记录才被定位。Scope 子句有 ALL、NEXT nRecords、RECORD nRecordNumber 和 REST。
LOCATE 的默认范围是所有 (ALL) 记录。
WHILE lExpression2
指定一个条件,只要逻辑表达式 lExpression2 计算值为“真”(.T.),就继续查找记录。
NOOPTIMIZE
关闭 LOCATE 的 Rushmore 优化。
详细信息, 参见 SET OPTIMIZE 和 用 Rushmore 查询优化数据访问速度。
备注
被索引的表不必已有索引。
如果使用不带 FOR 表达式的 LOCATE 命令, Visual FoxPro 定位记录指针到第一个逻辑记录上。这在使用了筛选或 DELETED 设置为 ON 时比 GO TOP 更快。
若 LOCATE 发现一个满足条件的记录,可使用 RECNO( ) 返回该记录号。若发现满足条件的记录,则 FOUND( ) 返回“真”(.T.),EOF( ) 返回“假”(.F.)。若 SET TALK 是 ON,则显示满足条件的记录号。
LOCATE 发现一个满足条件的记录之后,可执行 CONTINUE,从而在表的剩余部分寻找其他满足条件的记录。当执行 CONTINUE 时,搜索操作从满足条件的记录的下一条记录开始继续执行。可重复执行 CONTINUE,直到到达范围边界或表尾。
若找不到满足条件的记录,则 RECNO( ) 返回表中的记录数加 1,FOUND( ) 返回“假”(.F.),EOF( ) 返回“真”(.T.)。
LOCATE 和 CONTINUE 只能用于当前工作区。若选择了另一工作区,则当重选原来的工作区时可继续原来的搜索过程。
示例
在下列示例中,定位德国顾客的记录,然后显示总数。
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'Data\testdata')
USE customer && 打开 customer 表
SET TALK OFF
STORE 0 TO gnCount
LOCATE FOR ALLTRIM(UPPER(customer.country)) = 'GERMANY'
DO WHILE FOUND()
gnCount = gnCount + 1
? company
CONTINUE
ENDDO
? '总的德国客户数: '+ LTRIM(STR(gnCount))
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select * from 表 where 关键字段=?
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询