PRB: Creating .IDX with "Not Deleted" Will Order Incorrectly

Last reviewed: June 27, 1995
Article ID: Q100031
The information in this article applies to:
  • Microsoft FoxPro for MS-DOS, versions 1.02, 2.0, 2.5, and 2.5a
  • Microsoft FoxPro for Windows, versions 2.5 and 2.5a

SYMPTOMS

Creating a .IDX file with "Not Deleted()" and then deleting a record will cause incorrect ordering when a SKIP command is issued.

CAUSE

This is expected behavior for a normal (noncompact) .IDX file.

RESOLUTION

To ensure that the SKIP command works correctly, add the COMPACT clause to the following line:

   INDEX ON <fieldname> TO <filename> FOR !deleted() COMPACT

Another solution to this problem is to use a .CDX index file because it already is a compact index file.

MORE INFORMATION

Steps to Reproduce Problem

  1. Create a database named "test" with one numeric field called "num". Enter nine records in the database: three 1's, three 2's, and three 3's.

  2. Issue the following command in the Command window:

          INDEX ON num TO test.idx FOR !deleted()
    

  3. Issue the following commands in the Command window:

          GO TOP
          DELETE
          SKIP
    

After you delete a record and issue a SKIP command, the record pointer will move from record #1 (the first number 1) to record #5 (the first number 2).


Additional reference words: FoxDos FoxWin 2.00 2.50 2.50a
KBCategory: kbprg kbprb
KBSubcategory: FxprgGeneral


THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.

Last reviewed: June 27, 1995
© 1998 Microsoft Corporation. All rights reserved. Terms of Use.