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

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

コンパイル時にデータ型を決定する必要がある場合は、静的アクセサー (CAccessor など) を使用します。

実行時にデータ型を決定する必要がある場合は、動的 (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 タグ付けデータとして書式設定します。

関連項目

アクセサーの使用