Partager via


Détection des types de paramètres table

S’applique à : SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)

Le consommateur, c’est-à-dire l’application cliente qui utilise le fournisseur OLE DB SQL Server Native Client, peut découvrir le type de chaque paramètre de commande si le texte de la commande a été donné au fournisseur OLE DB. Une fois le type d’un paramètre table connu, le consommateur peut découvrir les informations de métadonnées de chacune des colonnes du paramètre table.

Les informations de type des paramètres de procédure sont prises en charge par ICommandWithParameters::GetParameterInfo pour la plupart des types de paramètres. Depuis SQL Server 2005 (9.x), avec l’introduction des types définis par l’utilisateur et du type de données xml, la méthode GetParameterInfo n’est plus suffisante, car il n’est pas possible de fournir des informations sur les types définis par l’utilisateur (nom, schéma et catalogue) par le biais de ICommandWithParameters. Une nouvelle interface, ISSCommandWithParameters, a été définie pour fournir des informations étendues sur les types.

Pour les paramètres table, l'interface ISSCommandWithParameters est également utilisée pour découvrir des informations détaillées. Le client appelle ISSCommandWithParameters::GetParameterInfo après la préparation de l’objet de commande. Pour les paramètres table, le membre wType de la structure DBPARAMINFO est défini sur DBTYPE_TABLE par le fournisseur. Le champ ulParamSize de la structure DBPARAMINFO a la valeur ~0.

Le consommateur peut ensuite demander des propriétés supplémentaires (nom de catalogue, nom de schéma et nom du type de paramètre table, tri des colonnes et colonnes par défaut) avec ISSCommandWithParameters::GetParameterProperties.

Une fois le nom du type connu, pour récupérer les informations de chaque colonne, le consommateur doit appeler IOpenRowset::OpenRowsetor ou obtenir l’ensemble de lignes DBSCHEMA_TABLE_TYPE_COLUMNS en spécifiant le nom du type de paramètre table comme nom de table.

Voir aussi

Paramètres table (OLE DB)
Utiliser des paramètres table (OLE DB)