IRowsetLocateImpl クラス
更新 : 2007 年 11 月
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