Error 41: "Memo file is missing or invalid" error message when you access Visual FoxPro tables on a computer that is running Windows Millennium Edition or an earlier version of Windows from a computer that is running Windows XP (812696)



The information in this article applies to:

  • Microsoft Visual FoxPro for Windows 3.0
  • Microsoft Visual FoxPro for Windows 3.0b
  • Microsoft Visual FoxPro for Windows 5.0
  • Microsoft Visual FoxPro for Windows 6.0
  • Microsoft Visual FoxPro for Windows 7.0
  • Microsoft Visual FoxPro for Windows 7.0 SP1
  • Microsoft Visual FoxPro 8.0
  • Microsoft Visual FoxPro 9.0 Professional Edition
  • the operating system: Microsoft Windows 95
  • the operating system: Microsoft Windows 98
  • the operating system: Microsoft Windows 98 Second Edition
  • the operating system: Microsoft Windows Millennium Edition
  • the operating system: Microsoft Windows XP

SYMPTOMS

You use a computer that is running Microsoft Windows Millennium Edition or an earlier version of Windows as a file server. That computer hosts Visual FoxPro tables that contain memo fields. When users with computers that are running Microsoft Windows XP try to access these tables, they may receive the following error message, even though there is nothing wrong with the memo file:
Error 41 "Memo file is missing or invalid."
In Visual FoxPro 9.0, you may receive the following error message:
Table "name" has become corrupted. The table will need to be repaired before using again. (Error 2091) .

CAUSE

The problem is caused by the difference between the file locking in Windows Millennium Edition and earlier versions of Windows, and the file locking in Windows XP.

RESOLUTION

Use a computer that is running Windows XP as the file server.

STATUS

This behavior is by design.

MORE INFORMATION

Steps to reproduce the problem

  1. Use the following code to create a new program in Visual FoxPro:
    * Start of Code
    SET EXCLUSIVE OFF
    USE test
    FOR i=1 TO 100000 INSERT INTO test (name,m1) VALUES ("Junk", "This is some data for a test")
    ENDFOR
    * End of Code
  2. Run the following code to create a table that is named test:
    CREATE TABLE Test (name C(10), m1 m)
  3. Build an executable from the code that you created in step 1.
  4. Save the executable on a computer that is running Windows Millennium Edition or an earlier version of Windows. Create a share on that computer, and then connect the computer that is running Windows XP to the share.
  5. Start the executable on the computer that you created the share on, and then start it from the computer that is running Windows XP. You may receive the error message that is described in the "Symptoms" section.

Modification Type:MajorLast Reviewed:2/16/2005
Keywords:kbprb kbCodeSnippet KB812696 kbAudDeveloper