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 supprimera toutes les propriétés qui ont pu être spécifiées pour les paramètres dans la commande.

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

Valeurs de code retournées

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

Notes

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

Vous devez appeler la méthode SetParameterInfo avant d'appeler la méthode ISSCommandWithParameters::SetParameterProperties. 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 de ISSCommandWithParameters::SetParameterProperties pour spécifier des propriétés pour un paramètre qui n'est pas du type DBTYPE_XML ou DBTYPE_UDT retourne DB_E_ERRORSOCCURRED ou DB_S_ERRORSOCCURRED et marque le champ dwStatus de tous les DBPROP 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 de paramètres dont les informations sur les paramètres 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 des paramètres où les informations sur les paramètres ont été définies et quelques paramètres où les informations sur les paramètres n'ont pas été définies, les propriétés dwStatus dans le DBPROPSET du jeu de propriétés DBPROPSET seront retournées avec DBSTATUS_NOTSET.

La structure SSPARAMPROPS est définie comme suit :

struct SSPARAMPROPS {

DBORDINAL iOrdinal;

ULONG cPropertySets;

DBPROPSET *rgPropertySets;

};

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

Référence