CRowsetImpl クラス
多くの実装インターフェイスの多重継承を必要としない標準の OLE DB 行セット実装を提供します。
template <
class T,
class Storage,
class CreatorClass,
class ArrayType = CAtlArray<Storage>,
class RowClass = CSimpleRow,
class RowsetInterface = IRowsetImpl < T, IRowset >
>
class CRowsetImpl :
public CComObjectRootEx<CreatorClass::_ThreadModel>,
public CRowsetBaseImpl<T, Storage, ArrayType, RowsetInterface>,
public IRowsetInfoImpl<T, CreatorClass::_PropClass>
パラメーター
T
ユーザー クラス。CRowsetImpl の派生クラスです。Storage
ユーザー レコード クラス。CreatorClass
行セットのプロパティを保持するクラス。通常はコマンドです。ArrayType
行セットのデータを格納するクラス。 既定は CAtlArray ですが、必要な機能をサポートする任意のクラスを指定できます。
解説
CRowsetImpl は、静的なアップキャストによるオーバーライドを行います。 このクラスのメソッドは、行セットによるコマンド テキストの妥当性をチェックする方法を制御します。 独自の CRowsetImpl スタイルのクラスを作成するには、実装インターフェイスを多重継承します。 独自の実装を提供する必要のあるメソッドは Execute だけです。 作成メソッドでは、作成する行セットの種類に応じて、シグネチャの異なる Execute を使用する必要があります。 たとえば、CRowsetImpl の派生クラスでスキーマ行セットを実装するには、次のシグネチャの Execute メソッドを使用します。
HRESULT Execute(LONG* pcRows, ULONG cRestrictions, const VARIANT* rgRestrictions)
CRowsetImpl の派生クラスでコマンドまたはセッションの行セットを実装するには、次のシグネチャの Execute メソッドを使用します。
HRESULT Execute(LONG* pcRows, DBPARAMS* pParams)
CRowsetImpl の派生クラスで Execute メソッドを実装する場合は、内部データ バッファー (m_rgRowData) に値を格納する必要があります。
必要条件
**ヘッダー:**atldb.h