Microsoft KB Archive/153920

= FIX: sqlcursorfetch AVs on Select w/ "Order By," No Join =

Article ID: 153920

Article Last Modified on 2/14/2005

-

APPLIES TO


 * Microsoft SQL Server 6.5 Standard Edition

-



This article was previously published under Q153920





SYMPTOMS
The use of the FETCH operation on a cursor to select from multiple tables, including sysobjects table, with no join and using an "order by" clause causes a handled access violation (AV).



RESOLUTION
In most application environments, this is not a problem since the system table sysobjects is not involved in user queries. In cases where sysobjects is involved, avoid using extraneous tables in select statements, especially those involving cursor operations. It is generally a sound programming practice to include in select statements only the tables actually involved in the statement.



STATUS
Microsoft has confirmed this to be a problem in Microsoft SQL Server version 6.5. This problem was first corrected in Microsoft SQL Server version 6.5 Service Pack 1.



MORE INFORMATION
The AV happens during the FETCH operation.

The following conditions have to be true for the AV to occur:


 * 1) The column list selected should include at least 1 column from sysobjects
 * 2) The table "sysobjects" should be included in the FROM clause. The other tables in the from clause can be system tables or user tables.
 * 3) The query should involve an "order by" clause.
 * 4) No join should be done. The where clause seems to be immaterial, and the AV occurs whether or not a where clause is involved.

Additional query words: server av terminate

Keywords: kbbug kbfix KB153920

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.