KnowledgeBase Archive

An Archive of Early Microsoft KnowledgeBase Articles

View on GitHub

Q192960: PRB: Cannot Release Procedure’s FXP if Class Definition in PRG

Article: Q192960
Product(s): Microsoft FoxPro
Version(s): WINDOWS:3.0,3.0b,5.0,5.0a,6.0
Operating System(s): 
Keyword(s): 
Last Modified: 04-FEB-2000

-------------------------------------------------------------------------------
The information in this article applies to:

- Microsoft Visual FoxPro for Windows, versions 3.0, 3.0b, 5.0, 5.0a, 6.0 
-------------------------------------------------------------------------------

SYMPTOMS
========

In a program file, when using the SET PROCEDURE TO command to call a procedure
file that has a Class Definition in it, issuing a RELEASE PROCEDURE command in
the program file will not release the procedure's FXP file even after the
program has been run. If the procedure file does not have any Class Definition
in it, RELEASE PROCEDURE will work as expected.

RESOLUTION
==========

Use the CLEAR ALL command to release the procedure's FXP file.

STATUS
======

This behavior is by design.

MORE INFORMATION
================

Steps to Reproduce Behavior
---------------------------

1. Create a program file named mytest containing following code:

        FUNCTION TestFunction

        o=CREATEOBJECT("cTemp")
        o.SomeMethod()

        RETURN

        DEFINE CLASS cTemp AS Custom

           FUNCTION SomeMethod(lcText)
              lcText=IIF(type("lcText")="C",lcText,"HelloWorld")
              WAIT WINDOW lcText
           RETURN

        ENDDEFINE

2. In the Command window, run the following commands:

        CLEAR ALL
        CLOSE ALL
        CLEAR PROG

        SET PROCEDURE TO mytest
        ?SET("PROCEDURE")     && The name of the procedure file returned
        DO TestFunction

        RELEASE PROCEDURE mytest
        ?SET("PROCEDURE")     && Nothing returned

3. Go to Explorer and find mytest.fxp and try to delete the file. Note that the
  FXP file cannot be deleted, yet you cannot access either the function in the
  PRG or the class.

Additional query words: kbDSupport kbDse kbVFp300b kbVFp500a kbVFp500 kbVFp600 kbXBase

======================================================================
Keywords          :  
Technology        : kbVFPsearch kbAudDeveloper kbVFP300 kbVFP300b kbVFP500 kbVFP600 kbVFP500a
Version           : WINDOWS:3.0,3.0b,5.0,5.0a,6.0
Issue type        : kbprb

=============================================================================

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.

Copyright Microsoft Corporation 1986-2002.