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