Partager via


Détermination du type d’accesseur à utiliser

Vous pouvez déterminer les types de données sur un ensemble de lignes au moment de la compilation ou au moment de l’exécution.

Si vous avez besoin de déterminer les types de données au moment de la compilation, utilisez un accesseur statique (tel que CAccessor).

Si vous avez besoin de déterminer les types de données au moment de l’exécution, utilisez un accesseur dynamique (CDynamicAccessor ou ses enfants) ou manuel (CManualAccessor). Dans ce cas, vous pouvez appeler GetColumnInfo sur l’ensemble de lignes à retourner les informations de liaison de colonne, à partir de laquelle vous pouvez déterminer les types.

Le tableau suivant répertorie les types d’accesseurs fournis dans les modèles du consommateur. Chaque accesseur possède des avantages et des inconvénients. Selon votre situation, un seul type d’accesseur devrait répondre à vos besoins.

Classe d’accesseur Binding Paramètre Commentaire
CAccessor Créez un enregistrement d’utilisateur avec des macros COLUMN_ENTRY. Les macros lient un membre de données dans cet enregistrement à l’accesseur. Lorsque l’ensemble de lignes est créé, les colonnes ne peuvent pas être non liées. Oui, à l’aide d’une entrée de macro PARAM_MAP. Une fois liés, les paramètres ne peuvent pas être non liés. L’accesseur le plus rapide en raison de la petite quantité de code.
CDynamicAccessor Automatique. Non. Utile si vous ne connaissez pas le type de données dans un ensemble de lignes.
CDynamicParameterAccessor Automatique, mais peut être remplacé. Oui, si le fournisseur prend en charge ICommandWithParameters. Paramètres liés automatiquement. Plus lent que CDynamicAccessor mais utile pour l’appel des procédures stockées génériques.
CDynamicStringAccessor[A,W] Automatique. Non. Récupère les données accessibles depuis la banque de données en tant que données de chaîne.
CManualAccessor Utilisation manuelle de AddBindEntry. Utilisation manuelle de AddParameterEntry. Fast : les paramètres et les colonnes liées une seule fois. Vous déterminez le type de données à utiliser. (Voir Exemple DBVIEWER pour un exemple.) Nécessite plus de code que CDynamicAccessor ou CAccessor. Cela ressemble davantage à appeler directement OLE DB.
CXMLAccessor Automatique. Non. Récupère les données accessibles depuis la banque de données en tant que données de chaîne et les formate en tant que données avec balise XML.

Voir aussi

Utilisation des accesseurs