IAccessor::ReleaseAccessor

Releases an accessor.

HRESULT ReleaseAccessor (
   HACCESSOR   hAccessor,
   ULONG *         pcRefCount);

Parameters

hAccessor

[in]
The handle of the accessor to release.

pcRefCount

[out]
A pointer to memory in which to return the remaining reference count of the accessor handle. If pcRefCount is a null pointer, no reference count is returned.

Return Code

S_OK
The method succeeded.

E_FAIL
A provider-specific error occurred.

DB_E_BADACCESSORHANDLE
hAccessor was invalid.

DB_E_NOTREENTRANT
The provider called a method from IRowsetNotify in the consumer and the method has not yet returned.

Comments

ReleaseAccessor decrements the reference count of the accessor. If the reference count reaches zero, it releases the accessor and all resources used by the accessor. After an accessor is released, methods called with the handle to that accessor return DB_E_BADACCESSORHANDLE.

On rowsets, accessors are read-only and can be shared among threads in a free-threaded style without synchronization. The consumer must call ReleaseAccessor to decrement the reference count on an accessor that has been passed to a thread and is no longer needed by that thread.

This method can be called while the rowset is in a zombie state to enable the consumer to clean up after a transaction has been committed or aborted.

See Also

IAccessor::AddRefAccessor, IAccessor::CreateAccessor