BUG: SELECT with UNION ALL of Two Views Causes GPF in Sqlsrv32.dll (175905)



The information in this article applies to:

  • Microsoft SQL Server 6.5
  • Microsoft Open Database Connectivity 2.5
  • Microsoft Open Database Connectivity 3.0

This article was previously published under Q175905
BUG #: 17296 (6.5)

SYMPTOMS

When you perform a SELECT query with a UNION ALL of two views, a general protection (GP) fault occurs in Sqlsrv32.dll. The views are generated with SELECT statements that contain embedded CONVERT functions. The GP fault occurs on a call to SQLExtendedFetch when fetching the results using a server cursor.

CAUSE

The GP fault occurs because metadata about a column maximum width that is returned to the driver from the server cursor is incorrect.

WORKAROUND

To work around this problem, use the RTRIM string function to remove the extra padding after you use the CONVERT function. The CONVERT function incorrectly sets the resulting column width at 255 characters when it converts from the integer datatype to the character datatype. Use permanent or temporary tables, instead of views, to store the resulting data.

STATUS

Microsoft has confirmed this to be a problem in Microsoft SQL Server version 6.5 and ODBC versions 2.5 and 3.0. We are researching this problem and will post new information here in the Microsoft Knowledge Base as it becomes available.

Modification Type:MajorLast Reviewed:10/16/2003
Keywords:kbBug kbusage KB175905