Partager via


Accesseurs et jeux de lignes

Mise à jour : novembre 2007

Pour définir et récupérer des données, les modèles OLE DB utilisent un accesseur et un jeu de lignes au moyen de la classe CAccessorRowset. Cette classe peut gérer plusieurs accesseurs de différents types.

Types d'accesseurs

Tous les accesseurs dérivent de CAccessorBase. CAccessorBase assure la liaison à la fois des paramètres et des colonnes.

L'illustration suivante représente les types d'accesseurs.

Classes d'accesseurs

Types d'accesseurs

  • CAccessor   Utilisez cette classe d'accesseur lorsque vous connaissez la structure de la source de la base de données au moment du design. CAccessor lie statiquement un enregistrement de la base de données, qui contient la mémoire tampon, à la source de données.

  • CDynamicAccessorUtilisez cette classe d'accesseur quand vous ignorez la structure de la source de la base de données au moment du design. CDynamicAccessor appelle IColumnsInfo::GetColumnInfo pour obtenir les informations relatives aux colonnes de la base de données. Elle crée et gère un accesseur et la mémoire tampon.

  • CDynamicParameterAccessor   Utilisez cette classe d'accesseur pour gérer des types de commandes inconnus. Lorsque vous préparez les commandes, CDynamicParameterAccessor peut obtenir les informations sur les paramètres à partir de l'interface ICommandWithParameters, si le fournisseur prend en charge ICommandWithParameters.

  • CDynamicStringAccessor, CDynamicStringAccessorAet CDynamicStringAccessorW   Utilisez ces classes lorsque vous ignorez tout du schéma de la base de données. CDynamicStringAccessorA récupère des données en tant que chaînes ANSI ; CDynamicStringAccessorW récupère les données en tant que chaînes Unicode.

  • CManualAccessor   Avec cette classe, vous pouvez utiliser les types de données de votre choix, à condition que le fournisseur puisse convertir le type choisi. Elle gère à la fois les colonnes résultantes et les paramètres des commandes.

Le tableau suivant récapitule la prise en charge dans les types d'accesseurs des modèles OLE DB.

Type d'accesseur

Dynamique

Gère les paramètres

Mémoire tampon

Plusieurs accesseurs

CAccessor

Non

Oui

Utilisateur

Oui

CDynamicAccessor

Oui

Non

Modèles OLE DB

Non

CDynamicParameterAccessor

Oui

Oui

Modèles OLE DB

Non

CDynamicStringAccessor[A,W]

Oui

Non

Modèles OLE DB

Non

CManualAccessor

Oui

Oui

Utilisateur

Oui

Types de jeux de lignes

Les modèles OLE DB prennent en charge trois sortes de jeux de lignes (consultez l'illustration précédente) : des jeux de lignes simples (implémentés par CRowset), des jeux de lignes en bloc (implémentés par CBulkRowset) et des jeux de lignes de type tableau (implémentés par CArrayRowset). Les jeux de lignes simples extraient un handle de ligne simple lors d'un appel de MoveNext. Les jeux de lignes en bloc peuvent extraire plusieurs handles de ligne. Les jeux de lignes de type tableau sont des jeux de lignes qui sont accessibles à l'aide d'une syntaxe de tableau.

L'illustration suivante représente les différents types de jeux de lignes.

Classes de jeu de lignes

Graphique RowsetType

Les jeux de lignes du schéma n'accèdent pas aux données qui se trouvent dans le magasin de données ; ils accèdent plutôt aux informations relatives au magasin de données, appelées métadonnées. Les jeux de lignes du schéma sont généralement utilisés dans les situations où la structure de la base de données n'est pas connue au moment de la compilation, et doit être obtenue à ce moment-là.

Voir aussi

Concepts

Modèles du consommateur OLE DB (C++)