SQLColumns
SQLColumns
retourne SQL_SUCCESS si des valeurs existent ou non pour les paramètres CatalogName, TableName ou ColumnName . SQLFetch retourne SQL_NO_DATA lorsque des valeurs non valides sont utilisées dans ces paramètres.
Notes
Pour les types de valeur de grande taille, tous les paramètres « length » sont retournés avec la valeur SQL_SS_LENGTH_UNLIMITED.
SQLColumns
peut être exécuté sur un curseur côté serveur statique. Une tentative d'exécution de SQLColumns
sur un curseur pouvant être mis à jour (dynamique ou jeu de clés) retourne SQL_SUCCESS_WITH_INFO, indiquant que le type de curseur a été modifié.
Le pilote ODBC SQL Server Native Client prend en charge les informations de création de rapports pour les tables sur les serveurs liés en acceptant un nom en deux parties pour le paramètre CatalogName : Linked_Server_Name.Catalog_Name.
Pour ODBC 2. x applications n’utilisant pas de caractères génériques dans TableName, SQLColumns
retourne des informations sur les tables dont les noms correspondent à TableName et appartiennent à l’utilisateur actuel. Si l’utilisateur actuel ne possède aucune table dont le nom correspond au paramètre TableName , SQLColumns
retourne des informations sur les tables appartenant à d’autres utilisateurs où le nom de la table correspond au paramètre TableName . Pour ODBC 2. x applications utilisant des caractères génériques, SQLColumns
retourne toutes les tables dont les noms correspondent à TableName. Pour ODBC 3. x applications SQLColumns
retourne toutes les tables dont les noms correspondent à TableName , quel que soit le propriétaire ou que les caractères génériques soient utilisés.
Le tableau ci-dessous dresse la liste des colonnes renvoyées par le jeu de résultats :
Nom de la colonne | Description |
---|---|
DATA_TYPE | Retourne SQL_VARCHAR, SQL_VARBINARY ou SQL_WVARCHAR pour les types de données varchar(max). |
TYPE_NAME | Renvoie « varchar », « varbinary » ou « nvarchar » pour les types de données varchar(max), varbinary(max)et nvarchar(max). |
COLUMN_SIZE | Retourne SQL_SS_LENGTH_UNLIMITED pour les types de données varchar(max) indiquant que la taille de la colonne est illimitée. |
BUFFER_LENGTH | Retourne SQL_SS_LENGTH_UNLIMITED pour les types de données varchar(max) indiquant que la taille de la mémoire tampon est illimitée. |
SQL_DATA_TYPE | Retourne SQL_VARCHAR, SQL_VARBINARY ou SQL_WVARCHAR pour les types de données varchar(max). |
CHAR_OCTET_LENGTH | Retourne la longueur maximale d'une colonne de type char ou binary. Retourne 0 pour indiquer que la taille est illimitée. |
SS_XML_SCHEMACOLLECTION_CATALOG_NAME | Retourne le nom du catalogue dans lequel un nom de collection de schémas XML est défini. Si le nom du catalogue est introuvable, cette variable contient une chaîne vide. |
SS_XML_SCHEMACOLLECTION_SCHEMA_NAME | Retourne le nom du schéma dans lequel un nom de collection de schémas XML est défini. Si le nom du schéma est introuvable, cette variable contient une chaîne vide. |
SS_XML_SCHEMACOLLECTION_NAME | Retourne le nom d'une collection de schémas XML. Si le nom est introuvable, cette variable contient une chaîne vide. |
SS_UDT_CATALOG_NAME | Nom du catalogue contenant l’UDT (type défini par l’utilisateur). |
SS_UDT_SCHEMA_NAME | Nom du schéma contenant l’UDT. |
SS_UDT_ASSEMBLY_TYPE_NAME | Nom qualifié de l'assembly du type défini par l'utilisateur (UDT). |
Pour les UDT, la colonne TYPE_NAME existante est utilisée pour indiquer le nom de l’UDT ; par conséquent, aucune colonne supplémentaire ne doit être ajoutée au jeu de résultats de SQLColumns
ou SQLProcedureColumns. Le champ DATA_TYPE pour un paramètre ou une colonne de type UDT est SQL_SS_UDT.
Pour le type UDT des paramètres, vous pouvez utiliser les nouveaux descripteurs spécifiques au pilote définis ci-dessus pour obtenir ou définir les propriétés de métadonnées supplémentaires d'un UDT, si le serveur retourne ou nécessite ces informations.
Lorsqu’un client se connecte à SQL Server et appelle SQLColumns, l’utilisation de valeurs NULL ou wild carte pour le paramètre d’entrée du catalogue ne retourne pas d’informations provenant d’autres catalogues. Seules les informations sur le catalogue actuel sont retournées. Le client peut d’abord appeler SQLTables pour déterminer dans quel catalogue se trouve la table souhaitée. Le client peut ensuite utiliser cette valeur de catalogue pour le paramètre d’entrée du catalogue dans son appel à SQLColumns afin de récupérer des informations sur les colonnes de cette table.
SQLColumns et paramètres table
Le jeu de résultats retourné par SQLColumns dépend du paramètre de SQL_SOPT_SS_NAME_SCOPE. Pour plus d’informations, consultez SQLSetStmtAttr. Les colonnes suivantes ont été ajoutées pour les paramètres table :
Nom de la colonne | Type de données | Contenu |
---|---|---|
SS_IS_COMPUTED | Smallint | Pour une colonne d'un TABLE_TYPE, SQL_TRUE si la colonne est une colonne calculée ; sinon, SQL_FALSE. |
SS_IS_IDENTITY | Smallint | SQL_TRUE si la colonne est une colonne d'identité ; sinon, SQL_FALSE. |
Pour plus d’informations sur les paramètres table, consultez Paramètres table (ODBC).
Prise en charge par SQLColumns des fonctionnalités de date et heure améliorées
Pour plus d’informations sur les valeurs retournées pour les types date/heure, consultez Métadonnées du catalogue.
Pour plus d’informations, consultez Améliorations de date et d’heure (ODBC).
Prise en charge SQLColumns pour les types CLR volumineux définis par l'utilisateur
SQLColumns
prend en charge les grands types CLR définis par l'utilisateur. Pour plus d’informations, consultez Grands types de User-Defined CLR (ODBC).
Prise en charge SQLColumns pour les colonnes éparses
Deux colonnes spécifiques SQL Server ont été ajoutées au jeu de résultats pour SQLColumns :
Nom de la colonne | Type de données | Description |
---|---|---|
SS_IS_SPARSE | Smallint |
Si la colonne est une colonne éparse, SQL_TRUE ; sinon, SQL_FALSE. |
SS_IS_COLUMN_SET | Smallint |
Si la colonne est la colonne column_set , SQL_TRUE ; sinon, SQL_FALSE. |
Conformément à la spécification ODBC, les SS_IS_SPARSE et les SS_IS_COLUMN_SET s’affichent devant toutes les colonnes spécifiques aux pilotes ajoutées à SQL Server versions antérieures à SQL Server 2008, et après toutes les colonnes mandatées par ODBC lui-même.
Le jeu de résultats retourné par SQLColumns dépend du paramètre de SQL_SOPT_SS_NAME_SCOPE. Pour plus d’informations, consultez SQLSetStmtAttr.
Pour plus d’informations sur les colonnes éparses dans ODBC, consultez Prise en charge des colonnes éparses (ODBC).