>It adds a second (or, i suppose it adds 1,000 milliseconds...not a millisecond) every time you add 1 to the dateTime. It does not produce duplicates, as far as comparing adjacent values in the memory variable. However, VFP stores the information in the table in such a way that it *thinks* it IS a duplicate (as far as index uniqueness goes), when in reality it is NOT a duplicate. As Jonathan stated yesterday, you can pull the fields from adjacent duplicate records out to variables, and the 2 variables will compare as *not* equal (but visually appear to be equal). Sounds like rounding issue to me...
It's the milliseconds which are not displayed, but are there... but then, the way this case was built, there should always be 0 milliseconds, or... well, if XX century had only 99 years, why should each and every second have exactly 1000 milliseconds?
A way to check this would be to display datetimefield-ctot(ttoc(datetimefield)), it should reveal milliseconds, if any. I haven't tried this, it just seems to be one of old tricks around here.