BUG: Appending to a Table on a Network Hangs the Power Mac

Last reviewed: September 13, 1996
Article ID: Q153154
The information in this article applies to:
  • Microsoft FoxPro for Macintosh, version 2.6a

SYMPTOMS

When using FoxPro for Macintosh 2.6 on a Power Macintosh computer with the operating system 7.5.3 software, the computer will hang after appending or editing records to a table located on the network server. This problem occurs on computers that have a Peripheral Component Interconnect (PCI) board as part of their hardware. Apple is shipping these PCI boards as part of their standard equipment on most Power Macintosh computers.

WORKAROUND

To solve the problem of appending and editing tables on the server, try one of the following:

  • Turn the Modern Memory Manager off;

    -or-

  • Use a third-party product called Speed Doubler;

    -or-

  • Load the 68K version of FoxPro to work around this problem;

    -or-

  1. Use Visual FoxPro Macintosh 3.0.

STATUS

Microsoft has confirmed this to be a problem in the Microsoft products listed at the beginning of this article. We are researching this problem and will post new information here in the Microsoft Knowledge Base as it becomes available.

MORE INFORMATION

This problem does not occur on Power Macintosh computers with operating systems before 7.5.3. Turning off the Modern Memory Manager(MMM) will work sometimes and the computer will not hang when appending a record from a table on the server. If a software program called Speed Doubler is installed, the problem goes away. Speed Doubler installs its own 68K emulator, replacing the one that comes with system 7.5.3. The 68K emulator that comes with 7.5.3 seems to be the controlling problem. Below is a sample program that causes a Power Macintosh with a PCI board to hang.

When running the code below in the Trace window, place the table out on a server when prompted, and note that the computer hangs after issuing the second UNLOCK command. If the LOCK and UNLOCK commands are not used, the system hangs after three or more passes through the FOR loop.

Sample Code

************* Beginning of Code.

   CLOSE DATABASES
   SET SAFETY OFF

   x = PUTFILE( "Where?", "test.dbf")
   IF !EMPTY( x )
     SELECT 0
     CREATE TABLE (x) ;
        ( CUST      C( 8 ), SUBNO     C( 4 ), ;
        NKEY      C( 35 ), NAME    C( 25 ), ;
        PHONEKEY  C( 23 ))

     INDEX ON UPPER( nkey ) TAG nkey ADDITIVE
     INDEX ON cust+subno TAG cust ADDITIVE
     INDEX ON phonekey TAG phonekey ADDITIVE
     INDEX ON name TAG name ADDITIVE

     USE (x) SHARED

     FOR i = 1 TO 10
        APPEND BLANK
        =RLOCK()
        REPLACE Test.phonekey WITH REPLICATE( ALLTRIM( STR( i ) ), 10 )
        REPLACE Test.name WITH REPLICATE( CHR( 64 + i ), 10 )
        UNLOCK
     ENDFOR
   ENDIF

   ************* End of Code.


Additional reference words: 2.60a FoxMac INSERT INTO FROM MEMVAR
KBCategory: kbprg kb3rdparty kbnetwork kbbuglist
KBSubcategory: FxprgGeneral



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: September 13, 1996
© 1998 Microsoft Corporation. All rights reserved. Terms of Use.