次の方法で共有


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

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

コンパイル時にデータ型を決定する必要がある場合は、静的アクセサー (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 タグ付きデータとして書式設定します。

参照

概念

アクセサーの使用