IRowsetLocateImpl クラス
OLE DB IRowsetLocate インターフェイスを実装します。このインターフェイスは、行セットから任意の行をフェッチします。
template <
class T,
class RowsetInterface,
class RowClass = CSimpleRow,
class MapClass = CAtlMap < RowClass::KeyType, RowClass* >,
class BookmarkKeyType = LONG,
class BookmarkType = LONG,
class BookmarkMapClass = CAtlMap < RowClass::KeyType, RowClass* >
>
class ATL_NO_VTABLE IRowsetLocateImpl : public IRowsetImpl<
T,
RowsetInterface,
RowClass,
MapClass
>
パラメーター
T
IRowsetLocateImpl の派生クラス。RowsetInterface
IRowsetImpl の派生クラス。RowClass
HROW のストレージ ユニット。MapClass
プロバイダーが保持するすべての行ハンドルに対するストレージ ユニット。BookmarkKeyType
LONG や文字列などのブックマークの型。 通常のブックマークは最低 2 バイト長である必要があります。 1 バイト長は、OLE DB の standard bookmarksである DBBMK_FIRST、DBBMK_LAST、および DBBMK_INVALID 用に予約されています。BookmarkType
ブックマークとデータ間のリレーションシップを維持するためのマップ機構。BookmarkMapClass
プロバイダーが保持するすべての行ハンドルに対するストレージ ユニット。
解説
IRowsetLocateImpl クラスは、IRowsetLocate インターフェイスの OLE DB テンプレート実装です。 IRowsetLocate インターフェイスを使用して、行セットから任意の行をフェッチします。 このインターフェイスを実装しない行セットは、sequential 行セットです。 IRowsetLocate が行セットにあるとき、列 0 は行のブックマークです。この列を読み取ってブックマーク値を取得し、この値を使用して同じ行に再配置できます。
プロバイダーでブックマーク サポートを実装するには、IRowsetLocateImpl を使用します。 ブックマークは、コンシューマーが行にすばやく戻れるようにするためのプレースホルダー (行セットのインデックス) です。これによって、データへの高速アクセスを行うことができます。 プロバイダーは、ブックマークを使用して行を一意に識別します。 IRowsetLocateImpl の各メソッドを使用することにより、ブックマークの比較、オフセットによる行のフェッチ、ブックマークによる行のフェッチを行ったり、ブックマークのハッシュ値を返したりできます。
行セットで OLE DB のブックマークをサポートするには、行セットがこのクラスから継承されるようにします。
ブックマーク サポートの実装方法については、『Visual C++ Programmer's Guide』の「プロバイダーのブックマーク サポート」および『PlatformSDK』の『OLE DB Programmer's Reference』の「Bookmarks」を参照してください。
必要条件
ヘッダー:atldb.h