FIX: OpenSchema Method Generates Error 3251 (195487)
The information in this article applies to:
- ActiveX Data Objects (ADO) 1.5
- ActiveX Data Objects (ADO) 2.0
- ActiveX Data Objects (ADO) 2.01
This article was previously published under Q195487 SYMPTOMS Using server-side cursors to open a recordset with
OpenSchema, such as "Set rs = Connection.OpenSchema" generates error 3251:
Application-defined or object-defined error.
CAUSE Using the ActiveX Data Objects (ADO) OpenSchema method uses
the IDBSchemaRowset interface to provide advanced schema information. This
interface uses the GetRowset method to return a schema rowset. Currently,
properties are not passed to the IDBSchemaRowset::GetRowset() when using a
server-side cursor. This includes the IConnectionPointContainer property that
is necessary for supporting notification (events). This results in ADO not
hooking in the notification. RESOLUTION Open the connection on the client-side. For example:
Set Connection.CursorLocation = adUseClient
This way the client engine passes the IConnectionPointContainer
property, and ADO can hook in the notification. STATUSMicrosoft has confirmed that this is a bug in the Microsoft
products that are listed at the beginning of this article.
This problem has been fixed in MDAC 2.1
Service Pack 2 (SP2) and later versions of MDAC.
Modification Type: | Minor | Last Reviewed: | 3/14/2005 |
---|
Keywords: | kbADO210sp2fix kbADO250Fix kbADO260fix kbBug kbDatabase kbfix kbMDAC260fix kbmdac270fix kbMDACNoSweep KB195487 |
---|
|