... code
SELECT cars
LOCATE FOR ALLTRIM(UPPER(name)) = variable_read_from_textbox
IF NOT FOUND()
messagebox("not found")
ELSE
messagebox(cars.id_car)
ENDIF
当找不到名称但运行代码时,运行代码可以正常运行 .
谢谢!
1 回答
4
你的代码一般都是正确的 . 对安全性进行轻微修改并修复错误:
SELECT cars
* this implies an exact match, regardless of set exact, and makes casing same
* remember this wouldn't use an index unless there is an index with the same signature
LOCATE FOR ALLTRIM(UPPER(name)) == ALLTRIM(UPPER(m.variable_read_from_textbox))
IF NOT FOUND()
messagebox("not found")
ELSE
messagebox(transform(cars.id_car))
ENDIF
variable_read_from_textbox = ALLTRIM(UPPER(m.variable_read_from_textbox))
SET EXACT ON
SELECT cars
LOCATE FOR UPPER(name) = m.variable_read_from_textbox
IF NOT FOUND()
...
1 回答
你的代码一般都是正确的 . 对安全性进行轻微修改并修复错误:
据我所知,在VFP6中,messagebox()还没有能力将值转换为字符串并期望一个字符串(你没有告诉错误是什么,但应该是这样) .
关于你的搜索有点谨慎 .
除非有一个带有“ALLTRIM(UPPER(name))”键的索引,否则不会使用索引 . 如果存在,它将被使用,但由于alltrim(),这样的索引实际上是无用的 . 更好的索引就是:
然后你的搜索看起来像: