= do_it() function Do_It() clea set ansi on set exact on set collate to 'machine' set optimize on create cursor CursorTest ; ( j_ref I ; ) insert into CursorTest values(44 ) insert into CursorTest values( 0 ) insert into CursorTest values(44 ) index on bintoc(j_ref) tag bin2c index on PadR(bintoc(j_ref), 5) tag PadR2c ? set("order") scan ? recno(), j_ref endscan set order to ? set("order") scan ? recno(), j_ref endscan set order to bin2c ? set("order") scan ? recno(), j_ref endscan ?'*******************************' local lcZero, lc44, lnNum ? set("order") go top lc44 = bintoc(j_ref) lnNum = 44 ? recno(), j_ref, bintoc(j_ref), m.lc44, bintoc(44), bintoc(m.lnNum) skip lcZero = PadR(bintoc(j_ref), 5) lnNum = 0 ? recno(), j_ref, bintoc(j_ref), m.lcZero, bintoc(0), bintoc(m.lnNum) ?'-------------------------------------' ? set("order") * locate for PadR(bintoc(j_ref), 5) == PadR(bintoc(0), 5) locate for PadR(bintoc(j_ref), 5) == m.lcZero ?'optimize locate 0 (TRUE)', found(), ' ERROR', recno() locate for (bintoc(j_ref) == bintoc(0)) NOOPTIMIZE ?'no optimize locate 0 (TRUE)', found(), ' OK', recno() local aa[1] aa[1] = 0 select count(*) ; from CursorTest ; into array aa ; where Padr(bintoc(j_ref), 5) == m.lcZero ?'optimize count 0 (1):', aa[1], ' ERROR' set optimize off select count(*) ; from CursorTest ; into array aa ; where (bintoc(j_ref) == bintoc(0)) set optimize on ?'no optimize count 0 (1):', aa[1], aa[1], ' ERROR' locate for (bintoc(j_ref) == bintoc(44)) ?'optimize locate 44 (TRUE), recno 1:', found(), 'OK ', recno() insert into CursorTest values( 0 ) locate for (bintoc(j_ref) == bintoc(0)) ?'optimize locate 0 (TRUE), recno 2:', found(), recno(), 'ERROR' endfunc