Partager via


ISSCommandWithParameters::SetParameterProperties (OLE DB)

Définit les propriétés de paramètre pour chaque paramètre par ordinal ou définit des propriétés de paramètre en bloc en spécifiant un tableau de structures SSPARAMPROPS.

Syntaxe

  
HRESULT SetParameterProperties(  
DB_UPARAMS cParams,   
SSPARAMPROPS rgParamProperties[]);  

Arguments

cParams[in]
Nombre de structures SSPARAMPROPS dans le tableau rgParamProperties. Si ce nombre est égal à zéro, ISSCommandWithParameters::SetParameterProperties supprime toutes les propriétés qui ont pu être spécifiées pour tous les paramètres de la commande.

rgParamProperties[in]
Tableau de structures SSPARAMPROPS à définir.

Codet de retour

La ISSCommandWithParameters::SetParameterProperties méthode retourne les mêmes codes d’erreur que la méthode principale OLE DB ICommandProperties::SetProperties .

Notes

La définition des propriétés de paramètre avec cette méthode est autorisée par paramètre par ordinal, ou avec un seul ISSCommandWithParameters::SetParameterProperties appel une fois que le SSPARAMPROPS a été créé à partir du tableau de propriétés.

La méthode SetParameterInfo doit être appelée avant d’appeler la ISSCommandWithParameters::SetParameterProperties méthode. Le fait d'appeler SetParameterProperties(0, NULL) efface toutes les propriétés de paramètre spécifiées, tandis que l'appel de SetParameterInfo(0,NULL,NULL) efface toutes les informations sur les paramètres y compris toutes les propriétés qui peuvent être associées à un paramètre.

L’appel ISSCommandWithParameters::SetParameterProperties pour spécifier les propriétés d’un paramètre qui n’est pas de type DBTYPE_XML ou DBTYPE_UDT retourne DB_E_ERRORSOCCURRED ou DB_S_ERRORSOCCURRED et marque le champ dwStatus de tous les DBPROPs contenus dans SSPARAMPROPS pour ce paramètre avec DBPROPSTATUS_NOTSET. Le tableau DBPROP de chaque DBPROPSET contenu dans SSPARAMPROPS doit être parcouru pour détecter le paramètre auquel DB_E_ERRORSOCCURRED ou DB_S_ERRORSOCCURRED fait référence.

Si ISSCommandWithParameters::SetParameterProperties est appelé pour spécifier les propriétés des paramètres dont les informations de paramètre n’ont pas encore été définies avec SetParameterInfo, le fournisseur retourne E_UNEXPECTED avec le message d’erreur suivant :

La méthode SetParameterProperties ne peut pas être appelée pour les paramètres spécifiés sans appeler auparavant la méthode SetParameterInfo. Vous devez définir les informations de paramètre avant de définir les propriétés de paramètre.

Si l’appel à ISSCommandWithParameters::SetParameterProperties contient certains paramètres pour lesquels les informations de paramètre ont été définies et certains paramètres où les informations de paramètre n’ont pas été définies, les propriétés dwStatus dans le DBPROPSET du jeu de propriétés SSPARAMPROPS sont retournées avec DBSTATUS_NOTSET.

La structure SSPARAMPROPS est défini comme suit :

struct SSPARAMPROPS {

DBORDINAL iOrdinal;

ULONG cPropertySets;

DBPROPSET *rgPropertySets;

};

Les améliorations apportées au moteur de base de données à compter de SQL Server 2012 permettent à ISSCommandWithParameters::SetParameterProperties d’obtenir des descriptions plus précises des résultats attendus. Ces résultats plus exacts peuvent différer des valeurs retournées ISSCommandWithParameters::SetParameterProperties dans les versions précédentes de SQL Server. Pour plus d’informations, consultez Découverte des métadonnées.

Membre Description
iOrdinal Position ordinale du paramètre transmis.
cPropertySets Nombre de structures DBPROPSET dans rgPropertySets.
rgPropertySets Pointeur vers la mémoire dans lequel retourner un tableau de structures DBPROPSET.

Voir aussi

ISSCommandWithParameters (OLE DB)