PRB: FoxPro Runs Old Version of Program Created w/ Text Merge

Last reviewed: June 27, 1995
Article ID: Q114250
The information in this article applies to:
  • Microsoft FoxPro for Windows, versions 2.5x, 2.6
  • Microsoft FoxPro for MS-DOS, versions 2.0, 2.5x, 2.6, 2.6a
  • Microsoft FoxPro for Macintosh, version 2.5b

SYMPTOMS

A program that creates a second program then runs the newly created program runs an older version of the second program.

CAUSE

When a program in memory is run again, FoxPro does not reload the program from disk. Instead, the existing version in memory is used.

STATUS

This behavior is by design to enhance the speed of FoxPro.

NOTE: This does not occur in FoxPro 2.6a for Windows.

RESOLUTION

There are two ways to force FoxPro to read the most current copy of the program file from disk:

  • The preferred solution is to issue a CLEAR PROGRAM command immediately before the DO test statement in TXTMRG.PRG. The CLEAR PROGRAM command is designed to force FoxPro to reload the desired program file from disk.

    -or-

  • Issue a SET DEVELOPMENT ON command immediately before the first SET TEXTMERGE command. Although the default for SET DEVELOPMENT is ON, adding this line to a program forces FoxPro to reload the file from disk. However, changing the setting of SET DEVELOPMENT may not be desirable within a program.

MORE INFORMATION

Steps to Reproduce Behavior

  1. Create a program named CALLPRG that contains the following command:

          WAIT WINDOW "Version before text merge"
    

  2. In the Command window, type the following command:

          DO callprg
    

  3. Create a program named TXTMRG that contains the following commands

          SET TALK OFF
          SET TEXTMERGE TO "callprg.prg"
          SET TEXTMERGE ON
          WAIT WINDOW NOWAIT "Version after text merge"
          SET TEXTMERGE OFF
          SET TEXTMERGE TO
          DO callprg
    

  4. In the Command window, type the following command:

          DO txtmrg
    

A wait window that says "Version before text merge" appears because FoxPro uses the copy of CALLPRG that exists in memory.


Additional reference words: FoxMac FoxDos FoxWin 2.00 2.50 2.50a 2.50b 2.60
2.60a
KBCategory: kbenv kbprg kbprb
KBSubcategory: FxenvMemory


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.