Microsoft KB Archive/248156

= FIX: Incorrect Error Trace Information for Query Interface Failure =

Article ID: 248156

Article Last Modified on 3/14/2006

-

APPLIES TO


 * Microsoft SQL Server 7.0 Standard Edition

-



This article was previously published under Q248156



BUG #: 56121 (SQLBUG_70)



SYMPTOMS
When you attempt to perform a Distributed Query and the provider does not support IDBCreateCommand, you will see the following error message in the trace information you can collect using the SQL Server Profiler:

IDBProperties::QueryInterface returned 0x80004002: The provider did not support an interface.

This message is not correct and should be:

Server: Msg 7301, Level 16, State 2, Line 0

Could not obtain a required interface from OLE DB provider ' '.

OLE DB error trace [OLE/DB Provider ' ' IUnknown::QueryInterface returned 0x80004002: IDBCreateCommand].

where is an identifier representing the name of the provider.



STATUS
Microsoft has confirmed this to be a problem in SQL Server 7.0. This problem has been corrected in U.S. Service Pack 2 for Microsoft SQL Server 7.0. For more information, click the following article number to view the article in the Microsoft Knowledge Base:

254561 INF: How to Obtain Service Pack 2 for Microsoft SQL Server 7.0 and Microsoft Data Engine (MSDE) 1.0

For more information, contact your primary support provider.



MORE INFORMATION
The IDBCreateCommand interface should be supported by any provider that supports commands that SQL Server needs in two scenarios:


 * 1) The query contained a pass-thru query (OpenQuery, or OpenRowset with query a inside it).
 * 2) SELECT/INSERT/UPDATE/DELETE statement against a 4-part name for which SQL Server generates a query against the provider for optimization.

If step 1 is the case, that is, if the user is executing a query with a pass-through query in it, then this error message indicates that they are trying to execute a pass-through query against a provider that does not support the necessary functionality.

If step 2 is the case, then the user is not using a pass-through query but still seeing the problem and it indicates a possible problem with the provider. SQL Server will not try to use the IDBCreateCommand interface unless the provider indicated that it supports commands in an appropriate SQL dialect through the DBPROP_SQLSUPPORT property. One way this bug may occur is when the provider indicates an appropriate dialect level in this property, but actually does not support IDBCreateCommand. This would be a provider bug.

Keywords: kbbug kbfix KB248156

-

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

© Microsoft Corporation. All rights reserved.