TZTJ 发表于 2008-2-17 11:48

代码问题

请高手们帮我解读这个代码,小人在此感激不尽。
public asth1(1)
store .f. to asth1
..........
locate for 试题号=asth1(1)
主要是逻辑符号的使用,是表示查询存在的试题号还是查询不存在的试题号呢?

Tiger5392 发表于 2008-2-17 16:43

定位试题号的值为逻辑假的第一条记录

TZTJ 发表于 2008-2-17 17:02

tiger的意思是不是查询在试题号这条记录中包含有字段型逻辑值是假的第一记录吗?如果是这样,查询的表必须设置有逻辑型的字段?

午丁 发表于 2008-3-22 00:44

[quote][bo]以下是引用 [un]TZTJ[/un] 在 2008-2-17 17:02 的发言:[/bo]

tiger的意思是不是查询在试题号这条记录中包含有字段型逻辑值是假的第一记录吗?如果是这样,查询的表必须设置有逻辑型的字段? [/quote]

先设定你想要“locate”的那个字段的数据类型,改变 “ store .f. to asth1 ” 为相应类型的初始值
比如,你“LOCATE ”的字段是字符型(C),“ store .f. to asth1 ” 改为“ store "" to asth1 ”
或者干脆
asth1=""
然后
LOCATE FOR 某字段=asth1

午丁 发表于 2008-3-22 00:53

[quote][bo]以下是引用 [un]TZTJ[/un] 在 2008-2-17 11:48 的发言:[/bo]

请高手们帮我解读这个代码,小人在此感激不尽。
public asth1(1)
store .f. to asth1
..........
locate for 试题号=asth1(1)
主要是逻辑符号的使用,是表示查询存在的试题号还是查询不存在的试题号呢? ... [/quote]


locate for 要查找的是一个与字段相关的表达式,而表达式元素的数据类型应该与表字段相同,但是其值是随着条件的不同而不同。
比如某数值型字段“试题号”是某表的一个编号,假如有5条记录分别为1、2、3、4、5
现在我想找到一条编号=1的记录:
asth1(1)=1
locate for 试题号=asth1(1)

if eof()=.F.
*  该记录存在
else
*  该记录不存在
endif

页: [1]

编程论坛