使用するアクセサの種類の決定

更新 : 2007 年 11 月

行セットのデータ型は、コンパイル時または実行時に決定できます。

コンパイル時にデータ型を決定する必要がある場合は、静的アクセサ (CAccessor など) を使用します。データ型は、手動で決定することも、ATL OLE DB コンシューマ ウィザードを使用して決定することもできます。

実行時にデータ型を決定する必要がある場合は、動的アクセサ (CDynamicAccessor またはその子) または手動アクセサ (CManualAccessor) を使用します。この場合は、行セットに対して GetColumnInfo を呼び出して、列の連結の情報を返すことができます。この情報から型を決定できます。

次の表は、コンシューマ テンプレートで提供されるアクセサの種類の一覧を示します。各アクセサには長所と短所があります。状況に応じて、使用に適したアクセサの種類があります。

アクセサ クラス

バインディング

パラメータ

説明

CAccessor

COLUMN_ENTRY マクロを使用してユーザー レコードを作成します。マクロは、そのレコードのデータ メンバをアクセサに連結します。行セットが作成されると、列のバインドは解除できません。

適用あり。PARAM_MAP マクロ エントリを使用します。連結された後は、パラメータの連結を解除できません。

コード量が少ないため、最も高速なアクセサです。

CDynamicAccessor

自動。

適用なし。

行セットのデータ型が不明な場合に役立ちます。

CDynamicParameterAccessor

自動ですが、オーバーライドできます。

適用あり。ただし、プロバイダが ICommandWithParameters をサポートしている場合です。パラメータは自動的に連結されます。

CDynamicAccessor より低速ですが、汎用ストアド プロシージャの呼び出しには便利です。

CDynamicStringAccessor[A,W]

自動。

適用なし。

アクセスされるデータをデータ ストアから文字列データとして取得します。

CManualAccessor

AddBindEntry を使用して手動で行います。

AddParameterEntry を使用して手動で指定します。

処理が高速です。パラメータと列は 1 回だけ連結されます。ユーザーが使用するデータ型を決定します。例については、DBVIEWER のサンプルを参照してください。CDynamicAccessor または CAccessor のほかにコードが必要です。これは OLE DB の直接呼び出しに似ています。

CXMLAccessor

自動。

適用なし。

アクセスされるデータをデータ ストアから文字列データとして取得し、XML タグ付きデータとして書式設定します。

参照

概念

アクセサの使用