Thanks for bringing this to our attention.
I submitted it on your behalf. Note that this behavior is not new to VFP8, I see it in all VFP versions, back to VFP3.
>Hi,
>
>
>SET MULTILOCK ON
>
>CREATE CURSOR TestBufferI (A I NULL)
>INSERT INTO TestBufferI VALUES(3)
>INDEX ON NVL(A,4) TAG IX1
>INSERT INTO TestBufferI VALUES(NULL)
>=CURSORSETPROP("Buffering",5)
>
>
>CREATE CURSOR TestBufferC (A C(2) NULL)
>INSERT INTO TestBufferC VALUES('33')
>INDEX ON NVL(A,'44') TAG IX1
>INSERT INTO TestBufferC VALUES(NULL)
>=CURSORSETPROP("Buffering",5)
>
>******************
>
>CREATE CURSOR TestBufferY (A Y NULL)
>INSERT INTO TestBufferY VALUES($3)
>INDEX ON NVL(A,$4) TAG IX1
>INSERT INTO TestBufferY VALUES(NULL)
>=CURSORSETPROP("Buffering",5)
>
>* NO ERROR ON VFP6SP5
>* ERROR ON VFP7SP1 AND VFP8
>* "Index does not match the table.
>* Delete the index file and re-create the index"
>
>with
>
>INDEX ON $4 TAG IX1 the error appears.
>INDEX ON A+$4 TAG IX1 the error appears.
>INDEX ON A TAG IX1 the error not appears.
>INDEX ON A+NTOM(4) TAG IX1 the error not appears.
>
>The the problem is with currency costant value on index expression.
>
>Fabio
Jim Saunders
Microsoft
This posting is provided “AS IS”, with no warranties, and confers no rights.