DOCUMENT:Q107397  19-NOV-1993  [B_DFOXPRO]
TITLE   :PRFOX: GPF or Crash When Indexing a Long Numeric Calculation
PRODUCT :FoxPro For MS-DOS
PROD/VER:2.00 2.50 2.50a | 2.50 2.50a
OPER/SYS:MS-DOS          | WINDOWS
KEYWORDS:buglist2.50 buglist2.50a fixlist2.50b

--------------------------------------------------------------------
The information in this article applies to:
 
 - Microsoft FoxPro for MS-DOS, versions 2.0, 2.5, and 2.5a
 - Microsoft FoxPro for Windows, versions 2.5 and 2.5a
--------------------------------------------------------------------
 
SYMPTOMS
========
 
Indexing on a numeric expression derived from a long calculation
causes FoxPro for Windows to generate a general protection (GP) fault
and causes FoxPro for MS-DOS to hang and control to be returned to
MS-DOS.
 
STATUS
======
 
Microsoft has confirmed this to be a problem in FoxPro 2.0, 2.5, and
2.5a for MS-DOS and FoxPro 2.5 and 2.5a for Windows. This problem was
corrected in FoxPro 2.5b for MS-DOS and FoxPro 2.5b for Windows.
 
MORE INFORMATION
================
 
Steps to Reproduce Problem
--------------------------
 
1. Create a table containing several 20-character fields of character
   type:
 
      CREATE TABLE testtbl (nn1 c(20), nn2 c(20), nn3 c(20),  nn4 c(20), ;
      nn5 c(20), nn6 c(20), nn7 c(20), nn8 c(20), nn9 c(20), nna c(20), ;
      nnb c(20), nnc c(20), nnd c(20), nne c(20), nnf c(20), nng c(20), ;
      nnh c(20), nni c(20), nnj c(20), nnk c(20), nnl c(20), nnm c(20), ;
      nnn c(20))
 
2. Create a structural index on the sum of the VAL() of the character
   fields:
 
      INDEX ON VAL(SUBSTR(NN1,1,20)) + ;
          VAL(SUBSTR(NN2,1,20)) + ;
          VAL(SUBSTR(NN3,1,20)) + ;
          VAL(SUBSTR(NN4,1,20)) + ;
          VAL(SUBSTR(NN5,1,20)) + ;
          VAL(SUBSTR(NN6,1,20)) + ;
          VAL(SUBSTR(NN7,1,20)) + ;
          VAL(SUBSTR(NN8,1,20)) + ;
          VAL(SUBSTR(NN9,1,20)) + ;
          VAL(SUBSTR(NNA,1,20)) + ;
          VAL(SUBSTR(NNB,1,20)) + ;
          VAL(SUBSTR(NNC,1,20)) + ;
          VAL(SUBSTR(NND,1,20)) + ;
          VAL(SUBSTR(NNE,1,20)) + ;
          VAL(SUBSTR(NNF,1,20)) + ;
          VAL(SUBSTR(NNG,1,20)) + ;
          VAL(SUBSTR(NNH,1,20)) + ;
          VAL(SUBSTR(NNI,1,20)) + ;
          VAL(SUBSTR(NNJ,1,20)) + ;
          VAL(SUBSTR(NNK,1,20)) + ;
          VAL(SUBSTR(NNL,1,20)) + ;
          VAL(SUBSTR(NNM,1,20)) + ;
          VAL(SUBSTR(NNN,1,20));
          TAG rptsort
  
Additional reference words: 2.0 2.50 2.50a buglist2.50a fixlist2.50b
gpf crash 

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

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 1993.