Partager via


CDynamicParameterAccessor (classe)

Semblable à CDynamicAccessor mais obtient les informations sur les paramètres à définir en appelant l’interface ICommandWithParameters .

Syntaxe

class CDynamicParameterAccessor : public CDynamicAccessor

Spécifications

En-tête : atldbcli.h

Membres

Méthodes

Nom Description
CDynamicParameterAccessor Constructeur .
GetParam Récupère les données du paramètre en mémoire tampon.
GetParamCount Récupère le nombre de paramètres dans l’accesseur.
GetParamIO Détermine si le paramètre spécifié est un paramètre d’entrée ou de sortie.
GetParamLength Récupère la longueur du paramètre spécifié stocké en mémoire tampon.
GetParamName Récupère le nom d’un paramètre spécifique.
GetParamStatus Récupère l’état du paramètre spécifié stocké en mémoire tampon.
GetParamString Récupère les données de chaîne du paramètre spécifié stocké en mémoire tampon.
GetParamType Récupère le type de données d’un paramètre spécifique.
SetParam Définit la mémoire tampon à l’aide des données de paramètre.
SetParamLength Définit la longueur du paramètre spécifié stocké en mémoire tampon.
SetParamStatus Définit l’état du paramètre spécifié stocké en mémoire tampon.
SetParamString Définit les données de chaîne du paramètre spécifié stocké en mémoire tampon.

Notes

Le fournisseur doit prendre en charge ICommandWithParameters pour permettre au consommateur d’utiliser cette classe.

Les informations sur les paramètres sont stockées dans une mémoire tampon créée et gérée par cette classe. Obtenez les données de paramètre à partir de la mémoire tampon via GetParam et GetParamType.

Pour obtenir un exemple illustrant comment utiliser cette classe pour exécuter une procédure stockée SQL Server et obtenir les valeurs des paramètres de sortie, consultez l’exemple de code DynamicConsumer dans le référentiel Microsoft VCSamples sur GitHub.

CDynamicParameterAccessor::CDynamicParameterAccessor

Constructeur .

Syntaxe

typedef CDynamicParameterAccessor _ParamClass;
CDynamicParameterAccessor(
   DBBLOBHANDLINGENUM eBlobHandling = DBBLOBHANDLING_DEFAULT,
   DBLENGTH nBlobSize = 8000 )
   : CDynamicAccessor(eBlobHandling, nBlobSize )

Paramètres

eBlobHandling
Spécifie la façon dont les données BLOB doivent être gérées. La valeur par défaut est DBBLOBHANDLING_DEFAULT. Pour obtenir une description des valeurs DBBLOBHANDUM, consultez CDynamicAccessor ::SetBlobHandling .

nBlobSize
Taille d’objet BLOB maximale en octets ; les données de colonne sur cette valeur sont traitées comme un objet BLOB. La valeur par défaut est 8 000. Pour plus d’informations, consultez CDynamicAccessor ::SetBlobSizeLimit .

Notes

Pour plus d’informations sur la gestion des objets BLOB, consultez le constructeur CDynamicAccessor ::CDynamicAccessor .

CDynamicParameterAccessor::GetParam

Récupère les données non chaînes d’un paramètre spécifié à partir de la mémoire tampon de paramètres.

Syntaxe

template <class ctype>bool GetParam(DBORDINAL nParam,
   ctype* pData) const throw();

template <class ctype> bool GetParam(TCHAR* pParamName,
   ctype* pData) const throw();

void* GetParam(DBORDINAL nParam) const throw();

void* GetParam(TCHAR* pParamName) const throw();

Paramètres

ctype
Paramètre modèle qui est le type de données.

nParam
[in] Numéro de paramètre (décalage de 1). Le paramètre 0 est réservé aux valeurs de retour. Le numéro de paramètre est l’index du paramètre en fonction de son ordre dans l’appel de procédure stockée ou SQL. Consultez SetParam pour obtenir un exemple.

pParamName
[in] Nom du paramètre.

pData
[out] Pointeur vers la mémoire contenant les données récupérées à partir de la mémoire tampon.

Valeur de retour

Pour les versions nontemplatées, pointe vers la mémoire contenant les données récupérées à partir de la mémoire tampon. Pour les versions de modèle, retourne true en cas de réussite ou false d’échec.

Permet GetParam de récupérer des données de paramètre non chaîne à partir de la mémoire tampon. Utilisez GetParamString pour récupérer les données de paramètre de chaîne à partir de la mémoire tampon.

CDynamicParameterAccessor::GetParamCount

Récupère le nombre de paramètres stockés dans la mémoire tampon.

Syntaxe

DB_UPARAMS GetParamCount() const throw();

Valeur de retour

Le nombre de paramètres.

CDynamicParameterAccessor::GetParamIO

Détermine si le paramètre spécifié est un paramètre d’entrée ou de sortie.

Syntaxe

bool GetParamIO(DBORDINAL nParam,
   DBPARAMIO* pParamIO) const throw();

Paramètres

nParam
[in] Numéro de paramètre (décalage de 1). Le paramètre 0 est réservé aux valeurs de retour. Le numéro de paramètre est l’index du paramètre en fonction de son ordre dans l’appel de procédure stockée ou SQL. Consultez SetParam pour obtenir un exemple.

pParamIO
Pointeur vers la variable contenant le DBPARAMIO type (entrée ou sortie) du paramètre spécifié. La définition est la suivante :

typedef DWORD DBPARAMIO;

enum DBPARAMIOENUM {
    DBPARAMIO_NOTPARAM   = 0,
    DBPARAMIO_INPUT      = 0x1,
    DBPARAMIO_OUTPUT     = 0x2
};

Valeur de retour

Retourne true une valeur réussie ou false en cas d’échec.

CDynamicParameterAccessor::GetParamLength

Récupère la longueur du paramètre spécifié stocké en mémoire tampon.

Syntaxe

bool GetParamLength(DBORDINAL nParam,
   DBLENGTH* pLength);

DBLENGTH* GetParamLength(DBORDINAL nParam) const throw();

Paramètres

nParam
[in] Numéro de paramètre (décalage de 1). Le paramètre 0 est réservé aux valeurs de retour. Le numéro de paramètre est l’index du paramètre en fonction de son ordre dans l’appel de procédure stockée ou SQL. Consultez SetParam pour obtenir un exemple.

pLength
[out] Pointeur vers la variable contenant la longueur en octets du paramètre spécifié.

Notes

Le premier remplacement retourne true la réussite ou false l’échec. Le deuxième remplacement pointe vers la mémoire contenant la longueur du paramètre.

CDynamicParameterAccessor::GetParamName

Récupère le nom du paramètre spécifié.

Syntaxe

LPOLESTR GetParamName(DBORDINAL nParam) const throw();

Paramètres

nParam
[in] Numéro de paramètre (décalage de 1). Le paramètre 0 est réservé aux valeurs de retour. Le numéro de paramètre est l’index du paramètre en fonction de son ordre dans l’appel de procédure stockée ou SQL. Consultez SetParam pour obtenir un exemple.

Valeur de retour

Nom du paramètre spécifié.

CDynamicParameterAccessor::GetParamStatus

Récupère l’état du paramètre spécifié stocké en mémoire tampon.

Syntaxe

bool GetParamStatus(DBORDINAL nParam,
   DBSTATUS* pStatus);

DBSTATUS* GetParamStatus(DBORDINAL nParam) const throw();

Paramètres

nParam
[in] Numéro de paramètre (décalage de 1). Le paramètre 0 est réservé aux valeurs de retour. Le numéro de paramètre est l’index du paramètre en fonction de son ordre dans l’appel de procédure stockée ou SQL. Consultez SetParam pour obtenir un exemple.

pStatus
[out] Pointeur vers la variable contenant l’état DBSTATUS du paramètre spécifié. Pour plus d’informations sur les valeurs DBSTATUS, consultez Status in the OLE DB Programmer’s Reference, or search for DBSTATUS in oledb.h.

Notes

Le premier remplacement retourne true la réussite ou false l’échec. Le deuxième remplacement pointe vers la mémoire contenant l’état du paramètre spécifié.

CDynamicParameterAccessor::GetParamString

Récupère les données de chaîne du paramètre spécifié stocké en mémoire tampon.

Syntaxe

bool GetParamString(DBORDINAL nParam,
   CSimpleStringA& strOutput) throw();

bool GetParamString(DBORDINAL nParam,
   CSimpleStringW& strOutput) throw();

bool GetParamString(DBORDINAL nParam,
   CHAR* pBuffer,
   size_t* pMaxLen) throw();

bool GetParamString(DBORDINAL nParam,
   WCHAR* pBuffer,
   size_t* pMaxLen) throw();

Paramètres

nParam
[in] Numéro de paramètre (décalage de 1). Le paramètre 0 est réservé aux valeurs de retour. Le numéro de paramètre est l’index du paramètre en fonction de son ordre dans l’appel de procédure stockée ou SQL. Consultez SetParam pour obtenir un exemple.

strOutput
[out] Données de chaîne ANSI (CSimpleStringA) ou Unicode (CSimpleStringW) du paramètre spécifié. Vous devez passer un paramètre de type CString, par exemple :

CString MyString;
rs.GetParamString(1, MyString);

pBuffer
[out] Pointeur vers les données de chaîne ANSI (CHAR) ou Unicode (WCHAR) du paramètre spécifié.

pMaxLen
[out] Pointeur vers la taille de la mémoire tampon pointée par pBuffer (en caractères, y compris la valeur NULL de fin).

Notes

Retourne true une valeur réussie ou false en cas d’échec.

Si pBuffer a la valeur NULL, cette méthode définit la taille de mémoire tampon requise dans la mémoire pointée par pMaxLen et retourne true sans copier les données.

Cette méthode échoue si la mémoire tampon pBuffer n’est pas suffisamment grande pour contenir toute la chaîne.

Permet GetParamString de récupérer des données de paramètre de chaîne à partir de la mémoire tampon. Utilisez GetParam pour récupérer des données de paramètre non chaîne à partir de la mémoire tampon.

CDynamicParameterAccessor::GetParamType

Récupère le type de données d’un paramètre spécifique.

Syntaxe

bool GetParamType(DBORDINAL nParam,
   DBTYPE* pType) const throw();

Paramètres

nParam
[in] Numéro de paramètre (décalage de 1). Le paramètre 0 est réservé aux valeurs de retour. Le numéro de paramètre est l’index du paramètre en fonction de son ordre dans l’appel de procédure stockée ou SQL. Consultez SetParam pour obtenir un exemple.

pType
[out] Pointeur vers la variable contenant le type de données du paramètre spécifié.

Valeur de retour

Retourne true une valeur réussie ou false en cas d’échec.

CDynamicParameterAccessor::SetParam

Définit la mémoire tampon de paramètres à l’aide des données spécifiées (non-chaîne).

Syntaxe

template <class ctype>
bool SetParam(DBORDINAL nParam,
   constctype* pData,
   DBSTATUS status = DBSTATUS_S_OK) throw();

template <class ctype>
bool SetParam(TCHAR* pParamName,
   const ctype* pData,
   DBSTATUS status = DBSTATUS_S_OK) throw();

Paramètres

ctype
Paramètre modèle qui est le type de données.

nParam
[in] Numéro de paramètre (décalage de 1). Le paramètre 0 est réservé aux valeurs de retour. Le numéro de paramètre est l’index du paramètre en fonction de son ordre dans l’appel de procédure stockée ou SQL. Par exemple :

WCHAR* wszSQL = L"SELECT * FROM Authors WHERE State='?' AND LName='?'";

CCommand<CDynamicParameterAccessor> rs;
//...
rs.SetParam<LONG>(1, &m_BillingID);
rs.SetParam<CString>(2, &m_strFirstName);

pParamName
[in] Nom du paramètre.

pData
[in] Pointeur vers la mémoire contenant les données à écrire dans la mémoire tampon.

statut
[in] État de la colonne DBSTATUS. Pour plus d’informations sur les valeurs DBSTATUS, consultez Status in the OLE DB Programmer’s Reference, or search for DBSTATUS in oledb.h.

Valeur de retour

Retourne true une valeur réussie ou false en cas d’échec.

Permet SetParam de définir des données de paramètre non chaîne dans la mémoire tampon. Utilisez SetParamString pour définir des données de paramètre de chaîne dans la mémoire tampon.

CDynamicParameterAccessor::SetParamLength

Définit la longueur du paramètre spécifié stocké en mémoire tampon.

Syntaxe

bool SetParamLength(DBORDINAL nParam,
   DBLENGTH length);

Paramètres

nParam
[in] Numéro de paramètre (décalage de 1). Le paramètre 0 est réservé aux valeurs de retour. Le numéro de paramètre est l’index du paramètre en fonction de son ordre dans l’appel de procédure stockée ou SQL. Consultez SetParam pour obtenir un exemple.

length
[in] Longueur en octets du paramètre spécifié.

Notes

Retourne true une valeur réussie ou false en cas d’échec.

CDynamicParameterAccessor::SetParamStatus

Définit l’état du paramètre spécifié stocké en mémoire tampon.

Syntaxe

bool SetParamStatus(DBORDINAL nParam,
   DBSTATUS status);

Paramètres

nParam
[in] Numéro de paramètre (décalage de 1). Le paramètre 0 est réservé aux valeurs de retour. Le numéro de paramètre est l’index du paramètre en fonction de son ordre dans l’appel de procédure stockée ou SQL. Consultez SetParam pour obtenir un exemple.

statut
[in] État DBSTATUS du paramètre spécifié. Pour plus d’informations sur les valeurs DBSTATUS, consultez Status in the OLE DB Programmer’s Reference, or search for DBSTATUS in oledb.h.

Notes

Retourne true une valeur réussie ou false en cas d’échec.

CDynamicParameterAccessor::SetParamString

Définit les données de chaîne du paramètre spécifié stocké en mémoire tampon.

Syntaxe

bool SetParamString(DBORDINAL nParam,
   constCHAR* pString,
   DBSTATUS status = DBSTATUS_S_OK) throw();bool SetParamString(DBORDINAL nParam,
   constWCHAR* pString,
   DBSTATUS status = DBSTATUS_S_OK) throw();

Paramètres

nParam
[in] Numéro de paramètre (décalage de 1). Le paramètre 0 est réservé aux valeurs de retour. Le numéro de paramètre est l’index du paramètre en fonction de son ordre dans l’appel de procédure stockée ou SQL. Consultez SetParam pour obtenir un exemple.

pString
[in] Pointeur vers les données de chaîne ANSI (CHAR) ou Unicode (WCHAR) du paramètre spécifié. Voir DBSTATUS dans oledb.h.

statut
[in] État DBSTATUS du paramètre spécifié. Pour plus d’informations sur les valeurs DBSTATUS, consultez Status in the OLE DB Programmer’s Reference, or search for DBSTATUS in oledb.h.

Notes

Retourne true une valeur réussie ou false en cas d’échec.

SetParamString échoue si vous essayez de définir une chaîne supérieure à la taille maximale spécifiée pour pString.

Permet SetParamString de définir des données de paramètre de chaîne dans la mémoire tampon. Utilisez SetParam pour définir des données de paramètre non chaîne dans la mémoire tampon.

Voir aussi

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