Détermination du type d'accesseur à utiliser
Mise à jour : novembre 2007
Vous pouvez déterminer les types de données sur un jeu de lignes au moment de la compilation ou au moment de l'exécution.
Si vous devez déterminer les types de données au moment de la compilation, utilisez un accesseur statique (tel que CAccessor). Vous pouvez déterminer les types de données manuellement ou en recourant à l'Assistant Consommateur OLE DB ATL.
Si vous devez 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 les deux cas, vous pouvez appeler GetColumnInfo sur le jeu de lignes pour retourner les informations relatives aux liaisons des colonnes, à partir desquelles vous pouvez déterminer les types.
Le tableau suivant récapitule les types d'accesseurs fournis dans les modèles du consommateur. Chaque accesseur présente des avantages et des inconvénients. Un type d'accesseur doit répondre à vos besoins, dans chaque cas.
Classes d'accesseurs |
Liaison |
Paramètres |
Comment |
---|---|---|---|
CAccessor |
Créez un enregistrement d'utilisateur à l'aide des macros COLUMN_ENTRY. Les macros lient des données membres de cet enregistrement à l'accesseur. Une fois le jeu de lignes créé, les colonnes ne peuvent être déliées. |
Oui, en utilisant une entrée de macro PARAM_MAP. Une fois liés, les paramètres ne peuvent pas être déliés. |
L'accesseur le plus rapide en raison de la petite quantité de code utilisée. |
CDynamicAccessor |
Automatique. |
Non. |
Utile si vous ne connaissez pas le type de données dans un jeu de lignes. |
CDynamicParameterAccessor |
Automatique, mais peut être substitué. |
Oui, si le fournisseur prend en charge ICommandWithParameters. Les paramètres sont 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 à partir du magasin de données en tant que données de type chaîne. |
CManualAccessor |
Manuelle en utilisant AddBindEntry. |
Manuels en utilisant AddParameterEntry. |
Très rapide ; les paramètres et les colonnes sont liés une seule fois. Vous déterminez le type de données à utiliser. (Consultez l'exemple DBVIEWER.) Exige davantage de code que CDynamicAccessor ou CAccessor. Cela ressemble davantage à l'appel direct d'OLE DB. |
CXMLAccessor |
Automatique. |
Non. |
Récupère les données accessibles à partir du magasin de données en tant que données de type chaîne, et les met en forme en tant que données XML. |