FIX: Error Routine Not Called for USE Command (129646)



The information in this article applies to:

  • Microsoft Visual FoxPro for Windows 3.0
  • Microsoft Visual FoxPro for Windows 3.0b

This article was previously published under Q129646

SYMPTOMS

Visual FoxPro will not trap for the error caused by trying to open a table that is part of a corrupted database.

Usually, the "USE customer" command will open the table and the database that the table is part of. If the Database is corrupt, the following message is displayed:
   The database for table C:\..\CUSTOMER.DBF could not be opened. Would you
   like to try to locate the owning database or delete the link (and free
   the table). Locate   Delete    Cancel
					
In a program with an error routine, the error routine is not called, and the above message is still displayed. Selecting Cancel ends the program.

RESOLUTION

Do not open a table that is part of a database without first opening the database. Then you can trap for the error generated by trying to open a corrupt database.

STATUS

Microsoft has confirmed this to be a problem in the Microsoft products listed at the beginning of this article. This problem has been fixed in Visual FoxPro 5.0 for Windows.

MORE INFORMATION

Steps to Reproduce Problem



Corrupt the TESTDATA database by opening it as a table and deleting the first record. Run the following program:
   SET DEFAULT TO C:\VFP\SAMPLES\DATA
   ON ERROR DO errhand WITH ERROR(), MESSAGE()

   USE customer

   ON ERROR

   PROCEDURE errhand
   PARAMETERS  errno, errmsg
   WAIT WINDOW STR(errno)+" "+ errmsg
   RETURN
				

Modification Type:MajorLast Reviewed:9/30/2003
Keywords:kbBug kbfix kbvfp500fix KB129646