Wiki Home

Undocumented Errors VFP 8

Namespace: WIN_COM_API
This topic lists errors which are not documented in the VFP8 help files.

Cross DBC RI interaction

This may be hard to explain, but here it goes.

Background info:

Two identical .DBC's, with identical tables in two different folders (say you had to restore a dataset from tape backup to compare/fix your live data).


Open a Parent table from one .DBC and a Child table from the other .DBC (these tables have RI cascading deletes in their respective .DBC's). If you delete a record from the Parent table, the Child records in the open Child table (that's a part of the other .DBC) are deleted! This leaves orphaned records in the Child table that should have been acted upon with the RI and deleted records in the other Child table that should never have been deleted.


This has bit us a number of times (in various ways), where RI rules don't distinguish between open tables and the .DBC that they belong to. This may have symptoms that go deeper, but it all boils down to the fact that you can get into trouble if you're working with tables that have the same name across DBC's.


Feels like a bug, or at least a shortcoming in the RI code.

- William Fields

Error 2066 Index File is corrupted

This is mentioned on the UT.

VFP8 introduced new routines for checking a table's header, which can be controlled by the use of SET TABLEVALIDATE (there are overheads from the validation)

It has been suggested that if the index is really corrupted or the part of the index that is already loaded into memory doesn't match the current index state (significant modifications have been made to the index by other clients

Error 2088 - Field is read only.

This error is the result of trying to update an AutoIncrement field. If SET AUTOINCERROR is ON, and an update, insert or gather command is issued which includes the autoincrement field, Error 2088 results. This error is not in the VFP8 help files. Cindy Winegarden has pointed out that the error is in the help files - under error 1088!

Code to reproduce:
set autoincerror on
create cursor demo (keyfield i autoinc, charfield c(10))
insert into demo (charfield) values ("test")
scatter name oLine
oLine.charfield = "another"
insert into demo from name oLine

Code to reproduce (for the terminally lazy):
ERROR 2088

Omission reported to MS docs team July 9 2003.

Error 2072 - Cursor cannot be modified because it contains an unsaved record.

This is discussed in VFP Undocumented Bugs.

One way this happens: doing data entry to a buffered table in a grid, where a Valid event triggers the addition of the next record. Use a local view instead of a buffered table.


I personally has a perfectly working form, no problems and suddenly received the error. The form had a grid, the grid was bound to a cursor created by CREATE CURSOR ... so it was not read only. The cursor had NO BUFFERING, so this kills all the other issues about buffering, triggers, etc and the form suddenly started stopped with this error. After all the other attempts I went through to adjust, what worked was to physically remove the grid, rebuild the form and then put a brand new grid on the form. Yes, it took a LITTLE bit of effort to reset the elements, grid columns of the grid, but all worked again with no additional changes. Hope this helps others.

Mismatched pushjmp/popjmp call.

This is mentioned in a few KB articles, at least, so isn't totally undocumented, although there's no mention in VFP help.

This means something along the lines of "Buckle your seatbelt Dorothy, because Kansas is going bye-bye". VFP is about to self-terminate with extreme prejudice.

Note: Could also be due to sql queries and filter strings that are too long. Solution here: Pushjmp Popjmp
( Topic last updated: 2011.02.09 07:15:07 AM )