Découverte du type de paramètre table
Le consommateur, autrement dit, l'application cliente utilisant le fournisseur OLE DB de 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, 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 avoir préparé 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 du type de paramètre table, nom de schéma du type de paramètre table et nom du type de paramètre table, tri des colonnes et colonnes par défaut) à l'aide de ISSCommandWithParamters::GetParameterProperties.
Une fois le nom du type connu, pour extraire les informations de colonnes individuelles, le consommateur doit appeler IOpenRowset::OpenRowset 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.