The information in this article applies to:
Advanced: Requires expert coding, interoperability, and multiuser skills. SYMPTOMSWhen you run a query that uses an ORDER BY statement on a linked table, you may receive the following error message:
CAUSE
You are unable to use the ORDER BY statement on a non-Primary Key field.
Microsoft Jet does not make the necessary ODBC call, SQLGetInfo(SQL_ORDER_BY_COLUMNS_IN_SELECT), to retrieve the information necessary to include ORDER BY columns in the SELECT statement. Select D,E,F from Test1 order by D,E,Fthe "pre query" would be: Select A,B,C from Test1 order by D,E,FThis "pre-query" extends beyond the ANSI-92 standards and is rejected by some of the relational database management systems, such as DB2. Other relational database management systems, such as Microsoft SQL Server, ORACLE, and others, allow this "pre-query" to succeed. (Strict ANSI-92 compliance dictates that ORDER BY columns must also be in the SELECT list.) RESOLUTIONFirst, install the latest release of Microsoft Data Access Components MDAC 2.1.2.4202.3 (GA). You can download MDAC 2.1.2.4202.3 (GA) from the following Microsoft Web site: http://www.microsoft.com/dataThen, install the Microsoft Jet 3.5 SP3 update. For additional information about how to obtain the Microsoft Jet 3.5 SP3 update, please click the article number below to view the article in the Microsoft Knowledge Base: Q172733 ACC97: Updated Version of Microsoft Jet 3.5 Available for Download STATUSMicrosoft has confirmed this to be a problem in the Microsoft products listed at the beginning of this article. MORE INFORMATION
In addition to obtaining the Jet update listed in the "Resolution" section, if you are using the IBM DB2 OS/390 ODBC driver, you must also install an IBM Driver Patch (Fixpack 9). The IBM DB2 OS/390 ODBC driver version v5.1.2 incorrectly returns "N" instead of "Y" when responding to a call to SQLGetInfo(SQL_ORDER_BY_COLUMNS_IN_SELECT). ftp://ftp.software.ibm.com/ps/products/db2/fixes/english-us/db2ntv5/FP9_WR21113/ Steps to Reproduce Problem
SELECT Field4,Field5,Field6 SELECT "dbo"."Test1"."Field1","dbo"."Test1"."Field2","dbo"."Test1"."Field3" FROM "dbo"."Test1" ORDER BY "Field4" ,"Field5" ,"Field6" Additional query words: pra
Keywords : kbdta |
Last Reviewed: November 10, 1999 © 2000 Microsoft Corporation. All rights reserved. Terms of Use. |