以下是引用TonyDeng在2011-6-25 15:55:47的发言:
遍歴一次的做法:
SCAN ALL
FOR nIndex = 1 TO FCOUNT()
cField = FIELD(nIndex)
IF EMPTY(EVALUATE(cField))
REPLACE (cField) WITH "0"
ENDIF
NEXT
ENDSCAN
用EMPTY()函數的时候,除字符型變量爲空(空串或空格串)外,還包括數値零、邏輯假的情況,如果你的數據表包含非字符型字段,在REPLACE時應分支按字段類型執行。
你自己分析一下那个循环次数更多呢?
假定250个字段,1000条记录,字段数够多,记录数够少吧,
遍历字段只需250次;
scan需要1000次,加里面的for循环,共计1000*250=250000次。你既遍历了字段有循环了记录,使操作次数呈记录级倍增。
实际应用字段很难会有250个,记录却往往会超过1000条。
[
本帖最后由 xmlz 于 2011-6-26 09:35 编辑 ]