次の方法で共有


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

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

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

参照

概念

アクセサーの使用