Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
L’exécution d’une commande qui contient des paramètres table nécessite deux phases :
Spécifiez les types de paramètres.
Lier les données de paramètre.
Spécification du paramètre Table-Valued
Le consommateur peut spécifier le type du paramètre table. Ces informations incluent le nom du type de paramètre table. Il inclut également le nom du schéma, si le type de table défini par l’utilisateur pour le paramètre table n’est pas dans le schéma par défaut actuel de la connexion. Selon la prise en charge du serveur, le consommateur peut également spécifier des informations de métadonnées facultatives, telles que l’ordre des colonnes, et spécifier que toutes les lignes pour des colonnes particulières ont les valeurs par défaut.
Pour spécifier un paramètre table, le consommateur appelle ISSCommandWithParameter ::SetParameterInfo et appelle éventuellement ISSCommandWithParameters ::SetParameterProperties. Pour un paramètre table, le champ pwszDataSourceType dans la structure DBPARAMBINDINFO a une valeur de DBTYPE_TABLE. Le champ ulParamSize a la valeur ~0 pour indiquer que la longueur est inconnue. Des propriétés particulières pour les paramètres table, telles que le nom de schéma, le nom de type, l’ordre des colonnes et les colonnes par défaut, peuvent être définies via ISSCommandWithParameters ::SetParameterProperties.
liaison de paramètres Table-Valued
Un paramètre table peut être n’importe quel objet d’ensemble de lignes. Le fournisseur lit à partir de cet objet lors de l’envoi de paramètres table au serveur pendant l’exécution.
Pour lier le paramètre table, le consommateur appelle IAccessor ::CreateAccessor. Le champ wType de la structure DBBINDING du paramètre table est défini sur DBTYPE_TABLE. Le membre pObject de la structure DBBINDING n’est pas NULL, et le membre iid de pObject est défini sur IID_IRowset ou toute autre interface d’objet d’ensemble de lignes de paramètres table. Les champs restants de la structure DBBINDING doivent être définis de la même façon qu’ils sont définis pour les objets blob diffusés en continu.
Dans les liaisons du paramètre table et de l’objet d’ensemble de lignes associé à un paramètre table, les restrictions suivantes s’appliquent :
Les seules valeurs d’état autorisées pour les données de colonne d’ensemble de lignes de paramètres table sont DBSTATUS_S_ISNULL et DBSTATUS_S_OK. DBSTATUS_S_DEFAULT entraîne un échec et la valeur d’état liée est définie sur DBSTATUS_E_BADSTATUS.
Un paramètre table peut être marqué avec l’état DBSTATUS_S_DEFAULT. Les seules valeurs valides sont DBSTATUS_S_DEFAULT et DBSTATUS_S_OK. Lorsque l’état est défini sur DBSTATUS_S_DEFAULT, la valeur du paramètre table correspond à une table vide.
Les colonnes en lecture seule dans les paramètres table (colonnes d’identité ou calculées) doivent être marquées comme étant par défaut à l’aide de la propriété SSPROP_PARAM_TABLE_DEFAULT_COLUMNS. Les colonnes qui ont une valeur par défaut doivent également être marquées comme étant par défaut via SSPROP_PARAM_TABLE_DEFAULT_COLUMNS propriété pour permettre l’utilisation de la valeur par défaut pour les valeurs de données de la colonne pour un paramètre table particulier. Le fournisseur ignore les valeurs de données liées aux colonnes marquées comme par défaut.
Les données sont envoyées au serveur pour les colonnes avec DBPROP_COL_AUTOINCREMENT ou SSPROP_COL_COMPUTED, sauf si SSPROP_PARAM_TABLE_DEFAULT est également défini.
Voir aussi
paramètresTable-Valued (OLE DB)
Utiliser des paramètres Table-Valued (OLE DB)