Microsoft KB Archive/105119

{| = FIX: Long SQL SELECT WHERE Clause: "SQL Internal Error" =
 * width="100%"|

ID: Q105119

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


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

SYMPTOMS
A Structured Query Language (SQL) SELECT statement with an extremely long WHERE clause can cause the following error message:

SQL Internal Error

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.

Steps to Reproduce Problem
Assuming FoxPro is installed in a directory named FOXPROW on drive C, issue the following code:

SET DEFAULT TO c:\foxprow\tutorial USE customer

SELECT company FROM customer ; WHERE (cno > '10000' .OR. cno < '20000') ; .AND. ('A' $ UPPER(company) .OR. 'B' $ UPPER(company) .OR. ;      'C' $ UPPER(company) .OR. 'D' $ UPPER(company) .OR. ;       'E' $ UPPER(company) .OR. 'S' $ UPPER(company)) ; .AND. ('A' $ UPPER(contact) .OR. 'B' $ UPPER(contact) .OR. ;      'C' $ UPPER(contact) .OR. 'D' $ UPPER(contact) .OR. ;       'E' $ UPPER(contact) .OR. 'S' $ UPPER(contact)) ; .AND. ('A' $ UPPER(address) .OR. 'B' $ UPPER(address) .OR. ;      'C' $ UPPER(address) .OR. 'D' $ UPPER(address) .OR. ;       'E' $ UPPER(address) .OR. 'S' $ UPPER(address)) ; .AND. ('A' $ UPPER(city) .OR. 'B' $ UPPER(city) .OR. ;      'C' $ UPPER(city) .OR. 'D' $ UPPER(city) .OR. ;       'E' $ UPPER(city) .OR. 'S' $ UPPER(city)) ; .AND. ('A' $ UPPER(state) .OR. 'W' $ UPPER(state) .OR. ;      'B' $ UPPER(state) .OR. 'C' $ UPPER(state) .OR. ;       'E' $ UPPER(state)) ; .AND. (state = 'WA' .OR. state = 'CA') ; .AND. (zip > '10000' .OR. zip < '100000') Additional reference words: FoxDos FoxWin 2.50 buglist2.50 fixlist2.50a errmsg err msg sequel KBCategory: kbprg kbfixlist kbbuglist kberrmsg KBSubcategory: FxprgSql Solution Type : kbfix
 * }