KnowledgeBase Archive

An Archive of Early Microsoft KnowledgeBase Articles

View on GitHub

Q157187: FIX: SQL Query Returns Different Result Set with Korean Window

Article: Q157187
Product(s): Microsoft FoxPro
Version(s): WINDOWS:3.0,3.0b
Operating System(s): 
Keyword(s): kbenvkbbuglist kbfixlist
Last Modified: 24-MAR-2000

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

- Microsoft Visual FoxPro for Windows, versions 3.0, 3.0b 
-------------------------------------------------------------------------------

SYMPTOMS
========

A SQL SELECT statement with a WHERE clause returns an unexpected result set if
Visual FoxPro for Windows is running under Hangeul Windows 95 (Korean Windows
95). Similar results have been reported when using German Windows 95 or German
Windows NT.

WORKAROUND
==========

There are two ways around this problem. Use the HAVING clause instead of the
WHERE clause in the SQL SELECT statement, or issue the SET COLLATE TO MACHINE
command before executing the SELECT statement.

If the index field is required, then use the SET COLLATE command on the Korean or
German setting and build whatever indexes are needed in this collating sequence
for normal operations, such as relationship and seeks. Before running a query,
temporarily set the collation sequence to machine, and execute the query, but
don't order it. Then set the collation sequence back to Korean, and do a query
on the result set and ORDER BY the desired order.

STATUS
======

Microsoft has confirmed this to be a problem in the Microsoft products listed at
the beginning of this article. This problem has been corrected in Visual FoxPro
5.0 for Windows.

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

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

Create two tables. The table structures are as shown below :

Structure

Table1             Table2
Field1   C10       Field1   C10
Field2   C10       Field2   C10

Contents

Table1             Table2
Field1  Field2     Field1  Field2
111     222        111     222
222     333        222     444
333     333        333     222
444     111        222     11
555     333        555     333

Issue the following command:

     SELECT * FROM Table1,Table2 ;
        WHERE Table1.Field1 = Table2.Field1 ;
        AND Table1.Field2 = Table2.Field2

Run Visual FoxPro for Windows 3.0b under Korean or German Windows 95 and the
query returns an empty cursor, but it returns the correct result set if the
query is executed under other Windows 95 platforms.

Additional query words: kbdse VFoxWin

======================================================================
Keywords          : kbenv kbbuglist kbfixlist
Technology        : kbVFPsearch kbAudDeveloper kbVFP300 kbVFP300b
Version           : WINDOWS:3.0,3.0b
Issue type        : kbbug
Solution Type     : kbfix

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

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.