Partager via


CDynamicStringAccessor, classe

Vous permet d’accéder à une source de données quand vous n’avez aucune connaissance du schéma de base de données (structure sous-jacente de la base de données).

Syntaxe

template< typename BaseType, DBTYPEENUM OleDbType >
class CDynamicStringAccessorT : public CDynamicAccessor

Spécifications

En-tête : atldbcli.h

Members (Membres)

Méthodes

Nom Description
GetString Récupère les données de colonne spécifiées sous forme de chaîne.
SetString Définit les données de colonne spécifiées sous forme de chaîne.

Notes

Alors que CDynamicAccessor demande des données au format natif signalé par le fournisseur, CDynamicStringAccessor demande au fournisseur d’extraire toutes les données accessibles à partir du magasin de données en tant que données de chaîne. Cela est particulièrement utile pour les tâches simples qui ne nécessitent pas de calcul de valeurs dans le magasin de données, telles que l’affichage ou l’impression du contenu du magasin de données.

Le type natif de données de colonne dans le magasin de données n’a pas d’importance ; tant que le fournisseur peut prendre en charge la conversion de données, il fournit les données au format chaîne. Si le fournisseur ne prend pas en charge la conversion du type de données natif en chaîne (ce qui n’est pas courant), l’appel demandeur retourne la valeur de réussite DB_S_ERRORSOCCURED, et l’état de la colonne correspondante indique un problème de conversion avec DBSTATUS_E_CANTCONVERTVALUE.

Utilisez des CDynamicStringAccessor méthodes pour obtenir des informations sur les colonnes. Vous utilisez ces informations de colonne pour créer un accesseur dynamiquement au moment de l’exécution.

Les informations de colonne sont stockées dans une mémoire tampon créée et gérée par cette classe. Obtenez des données de la mémoire tampon à l’aide de GetString ou stockez-les dans la mémoire tampon à l’aide de SetString.

Pour obtenir une discussion et des exemples d’utilisation des classes d’accesseur dynamique, consultez Utilisation des accesseurs dynamiques.

CDynamicStringAccessor::GetString

Récupère les données de colonne spécifiées sous forme de chaîne.

Syntaxe

BaseType* GetString(DBORDINAL nColumn) const throw();

BaseType* GetString(const CHAR* pColumnName) const throw();

BaseType* GetString(const WCHAR* pColumnName) const throw();

Paramètres

nColumn
[in] Numéro de colonne. Les numéros de colonne commencent par 1. La valeur 0 fait référence à la colonne signet, le cas échéant.

pColumnName
[in] Pointeur vers une chaîne de caractères qui contient le nom de colonne.

Valeur de retour

Pointeur vers la valeur de chaîne récupérée à partir de la colonne spécifiée. La valeur est de type BaseType, qui sera CHAR ou WCHAR selon que _UNICODE est défini ou non. Retourne NULL si la colonne spécifiée est introuvable.

Notes

Le deuxième formulaire de remplacement prend le nom de colonne sous forme de chaîne ANSI. Le troisième formulaire de remplacement prend le nom de colonne en tant que chaîne Unicode.

CDynamicStringAccessor::SetString

Définit les données de colonne spécifiées sous forme de chaîne.

Syntaxe

HRESULT SetString(DBORDINAL nColumn,
   BaseType* data) throw();

HRESULT SetString(const CHAR* pColumnName,
   BaseType* data) throw();

HRESULT SetString(const WCHAR* pColumnName,
   BaseType* data) throw();

Paramètres

nColumn
[in] Numéro de colonne. Les numéros de colonne commencent par 1. La valeur spéciale 0 fait référence à la colonne signet, le cas échéant.

pColumnName
[in] Pointeur vers une chaîne de caractères qui contient le nom de colonne.

data
[in] Pointeur vers les données de chaîne à écrire dans la colonne spécifiée.

Valeur de retour

Pointeur vers la valeur de chaîne à laquelle définir la colonne spécifiée. La valeur est de type BaseType, qui sera CHAR ou WCHAR selon que _UNICODE est défini ou non.

Notes

Le deuxième formulaire de remplacement prend le nom de colonne sous la forme d’une chaîne ANSI et le troisième formulaire de remplacement prend le nom de colonne en tant que chaîne Unicode.

Si _SECURE_ATL est défini pour avoir une valeur différente de zéro, un échec d’assertion d’exécution est généré si la chaîne de données d’entrée est supérieure à la longueur maximale autorisée de la colonne de données référencée. Sinon, la chaîne d’entrée est tronquée si elle est supérieure à la longueur maximale autorisée.

Voir aussi

Modèles du consommateur OLE DB
Référence des modèles du consommateur OLE DB
CAccessor, classe
CDynamicParameterAccessor, classe
CManualAccessor, classe
CDynamicAccessor, classe
CDynamicStringAccessorA, classe
CDynamicStringAccessorW, classe
CXMLAccessor, classe