Microsoft KB Archive/106279

From BetaArchive Wiki
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

FIX: SQL SELECT Can Cause Extra Output

ID: Q106279

2.50    | 2.50

WINDOWS | MS-DOS kbprg kbfixlist kbbuglist The information in this article applies to:

  • Microsoft FoxPro for Windows, version 2.5
  • Microsoft FoxPro for MS-DOS, version 2.5

SYMPTOMS

Under certain circumstances, a Structured Query Language (SQL) SELECT command can return extra output.

NOTE: This problem does not occur on all hardware.

STATUS

Microsoft has confirmed this to be a problem in FoxPro 2.5 for MS-DOS and FoxPro 2.5 for Windows. This problem was corrected in FoxPro 2.5a for MS-DOS and FoxPro 2.5a for Windows.

MORE INFORMATION

Steps to Reproduce Problem

Create and run a program with the following code:

   * Create A_FILE, B_FILE, and A_B_XREF, which is an x-ref file that
   * sets up a many-to-many relationship between A_FILE and B_FILE.
   CREATE TABLE a_file    (;
      a_code     C(1),      ;
      a_name     C(10)     )

   CREATE TABLE a_b_xref  (;
      a_code     C(1),      ;
      b_code     C(1)      )

   CREATE TABLE b_file    (;
      b_code     C(1),      ;
      b_name     C(10)     )

   CLOSE DATABASES

   * Note that some of the A_CODE values are in
   * the nonprintable range below ASCII code 32.
   INSERT INTO a_file VALUES(CHR(29),"A_NAME a29")
   INSERT INTO a_file VALUES(CHR(30),"A_NAME a30")
   INSERT INTO a_file VALUES(CHR(31),"A_NAME a31")
   INSERT INTO a_file VALUES(CHR(32),"A_NAME a32")
   INSERT INTO a_file VALUES(CHR(33),"A_NAME a33")

   INSERT INTO a_b_xref VALUES(CHR(30),"1")
   INSERT INTO a_b_xref VALUES(CHR(31),"1")
   INSERT INTO a_b_xref VALUES(CHR(29),"2")
   INSERT INTO a_b_xref VALUES(CHR(32),"2")
   INSERT INTO a_b_xref VALUES(CHR(33),"2")

   INSERT INTO b_file VALUES("1","B_NAME 1")
   INSERT INTO b_file VALUES("2","B_NAME 2")

   CLOSE DATABASES

   * Index fields
   SELECT 0
   USE a_file
   INDEX ON a_code TAG a_code
   INDEX ON a_name TAG a_name
   USE

   SELECT 0
   USE a_b_xref
   INDEX ON a_code TAG a_code
   INDEX ON b_code TAG b_code
   USE

   SELECT 0
   USE b_file
   INDEX ON b_code TAG b_code
   INDEX ON b_name TAG b_name
   USE

   SELECT ;
      DISTINCT ;
      a_file.a_name,b_file.b_name ;
      FROM a_file,a_b_xref,b_file ;
      WHERE a_file.a_code==a_b_xref.a_code AND ;
      b_file.b_code==a_b_xref.b_code AND ;
      b_file.b_name="B_NAME 1"

This program displays a Browse window containing three records. It should display only two records. Additional reference words: FoxDos FoxWin 2.50 buglist2.50 fixlist2.50a KBCategory: kbprg kbfixlist kbbuglist KBSubcategory: FxprgSql Solution Type : kbfix


Last Reviewed: October 14, 1997
© 1999 Microsoft Corporation. All rights reserved. Terms of Use.