Anmerkung
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen, dich anzumelden oder die Verzeichnisse zu wechseln.
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen , die Verzeichnisse zu wechseln.
OLE DB stellt Schnittstellen zum Empfangen von Benachrichtigungen bereit, wenn Ereignisse auftreten. Diese werden in OLE DB-Objektbenachrichtigungen in der OLE DB-Programmierreferenz beschrieben. Bei der Einrichtung dieser Ereignisse wird der standardmäßige COM-Verbindungspunktmechanismus verwendet. Beispielsweise implementiert ein ATL-Objekt, das Ereignisse über IRowsetNotify die IRowsetNotify Schnittstelle abrufen möchte, indem er der von der Klasse abgeleiteten Liste hinzufügt IRowsetNotify und sie über ein COM_INTERFACE_ENTRY Makro verfügbar macht.
IRowsetNotify verfügt über drei Methoden, die zu verschiedenen Zeiten aufgerufen werden können. Wenn Sie nur auf eine dieser Methoden reagieren möchten, können Sie die IRowsetNotifyImpl-Klasse verwenden, die E_NOTIMPL für die Methoden zurückgibt, die Sie nicht interessieren.
Wenn Sie das Rowset erstellen, müssen Sie dem Anbieter mitteilen, dass das zurückgegebene Rowset-Objekt unterstützt IConnectionPointContainerwerden soll, das zum Einrichten der Benachrichtigung erforderlich ist.
Der folgende Code zeigt, wie sie das Rowset aus einem ATL-Objekt öffnen und die AtlAdvise Funktion zum Einrichten der Benachrichtigungssenke verwenden. AtlAdvise gibt ein Cookie zurück, das beim Aufrufen AtlUnadviseverwendet wird.
CDBPropSet propset(DBPROPSET_ROWSET);
propset.AddProperty(DBPROP_IConnectionPointContainer, true);
Anschließend wird der folgende Code verwendet:
product.Open(session, _T("Products"), &propset);
AtlAdvise(product.m_spRowset, GetUnknown(), IID_IRowsetNotify, &m_dwCookie);