The ADO Client Cursor Engine may leak memory when you use it with a custom, third-party OLE DB provider. The leak occurs if the custom provider does not support some common OLE DB properties in the DPROPSET_DATASOURCEINFO and DBPROPSET_ROWSET property sets, including the following properties:
- DBPROP_DBMSNAME
- DBPROP_MULTIPLERESULTS
- DBPROP_PROVIDERNAME
- DBPROP_SCHEMATERM
- DBPROP_COMMANDTIMEOUT
- DBPROP_USERNAME
- DBPROP_IRowsetChange
- DBPROP_IRowsetUpdate
If custom providers return DB_E_ERRORSOCCURRED when the ADO Client Cursor Engine calls the
IRowsetInfo::GetProperties or the
IDBProperties::GetProperties method for these properties, the ADO Client Cursor Engine leaks memory.
This problem does not occur if the
GetProperties call succeeds. Therefore, the ADO Client Cursor Engine may leak memory if all of the following conditions are true:
- Your custom provider does not support any of the properties that are listed earlier in this section.
- Your custom provider returns DB_E_ERRORSOCCURRED when the ADO Client Cursor Engine calls IRowsetInfo::GetProperties or IDBProperties::GetProperties.