>Hi,
>Thanks for your solution it works well.
>For the record, on a 1GB dbf it reduces the CDX by approx 4MB, but makes little or no difference with the performance.
>
This work only if osbalance is not nullable.
>>>Hi,
>>>With binary indexes are you able to create a logical binary index based on the value of a numeric field i.e. IIF(osbalance=0,.F.,.T.) and have rushmore optimize it within a select.
>>>i.e. Select * from invoice where osbalance=.T.
>>>
>>>It would save a lot of space in the index and should be faster as well.
>>
>>Yes, you can use a binary index in this case. However, you can simplify your index expression a lot.
>>IIF(osbalance=0,.F.,.T.) can be simplified to osbalance#0, in other words
>>Index on IIF(osbalance=0,.F.,.T.) tag yourtag
>>Index on osbalance#0 tag yourtag
>>The same simplifiation can be used in many cases which many programmers clearly are not aware of.
>>lValue=.T.
>>?lValue=.T.
>>?lValue
>>Unfortunately youi can not set order to a binary index, but a binary index will be used to optimize queries.