次の方法で共有


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_FIRSTDBBMK_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

参照

概念

OLE DB プロバイダ テンプレート (C++)

OLE DB プロバイダ テンプレートのアーキテクチャ

参照

IRowsetLocate:IRowset

プロバイダのブックマーク サポート

Bookmarks

その他の技術情報

IRowsetLocateImpl のメンバ