Taille de colonne, chiffres décimaux, longueur des octets de transfert et taille d’affichage - ODBC

Les types de données sont caractérisés par leur taille de colonne (ou paramètre), leurs chiffres décimaux, leur longueur et leur taille d’affichage. Les fonctions ODBC suivantes retournent ces attributs pour un paramètre dans une instruction SQL ou pour un type de données SQL sur une source de données. Chaque fonction ODBC retourne un ensemble différent de ces attributs, comme suit :

  • SQLDescribeCol retourne la taille de colonne et les chiffres décimaux des colonnes qu’il décrit.

  • SQLDescribeParam retourne la taille de paramètre et les chiffres décimaux des paramètres qu’il décrit. SQLBindParameter définit la taille et les chiffres décimaux d’un paramètre dans une instruction SQL.

  • Les fonctions de catalogue SQLColumns, SQLProcedureColumns et SQLGetTypeInfo retournent les attributs d’une colonne dans une table, un jeu de résultats ou un paramètre de procédure, ainsi que les attributs de catalogue des types de données dans la source de données. SQLColumns retourne la taille de colonne, les chiffres décimaux et la longueur d’une colonne dans des tables spécifiées (par exemple, la table de base, la vue ou une table système). SQLProcedureColumns retourne la taille de colonne, les chiffres décimaux et la longueur d’une colonne dans une procédure. SQLGetTypeInfo retourne la taille de colonne maximale et les chiffres décimaux minimaux et maximum d’un type de données SQL sur une source de données.

Les valeurs retournées par ces fonctions pour la taille de colonne ou de paramètre correspondent à la « précision » telle que définie dans ODBC 2. x. Toutefois, les valeurs ne correspondent pas nécessairement aux valeurs retournées dans SQL_DESC_PRECISION ou tout autre champ de descripteur. Il en va de même pour les chiffres décimaux, qui correspondent à la « mise à l’échelle » telle que définie dans ODBC 2. x. Il ne correspond pas nécessairement aux valeurs retournées dans SQL_DESC_SCALE ou tout autre champ de descripteur, mais provient de différents champs de descripteur en fonction du type de données. Pour plus d’informations, consultez Taille des colonnes et chiffres décimaux.

De même, les valeurs de longueur d’octet de transfert ne proviennent pas de SQL_DESC_LENGTH. Ils proviennent de la SQL_DESC_OCTET_LENGTH d’un champ d’un descripteur pour tous les types caractères et binaires. Il n’existe aucun champ de descripteur qui contient ces informations pour d’autres types.

La valeur de taille d’affichage pour tous les types de données correspond à la valeur d’un champ de descripteur unique, SQL_DESC_DISPLAY_SIZE.

Les champs de descripteur décrivent les caractéristiques d’un jeu de résultats. Les champs de descripteur ne contiennent pas de valeurs valides sur les données avant l’exécution de l’instruction. Les valeurs pour la taille de colonne, les chiffres décimaux et la taille d’affichage retournées par SQLColumns, SQLProcedureColumns et SQLGetTypeInfo, en revanche, retournent les caractéristiques des objets de base de données, tels que les colonnes de table et les types de données, qui existent dans le catalogue de la source de données. De même, dans son jeu de résultats, SQLColAttribute retourne la taille de colonne, les chiffres décimaux et la longueur de transfert d’octets des colonnes au niveau de la source de données ; ces valeurs ne sont pas nécessairement identiques aux valeurs des champs de descripteur SQL_DESC_PRECISION, SQL_DESC_SCALE et SQL_DESC_OCTET_LENGTH.

Pour plus d’informations sur ces champs de descripteur, consultez SQLSetDescField.

Rubriques connexes :