Taille des colonnes, chiffres décimaux, longueur du transfert d’octets 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 des paramètres et les chiffres décimaux des paramètres qu’il décrit. SQLBindParameter définit la taille des paramètres et les chiffres décimaux d’un paramètre dans une instruction SQL.

  • Les fonctions de catalogue SQLColumns, SQLProcedureColumns et SQLGetTypeInfo retournent des attributs pour une colonne dans une table, un jeu de résultats ou un paramètre de procédure et les attributs 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 les 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 minimal et maximal 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 à « scale » comme défini dans ODBC 2.x. Elle 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 La taille des colonnes et les chiffres décimaux.

De même, les valeurs de la longueur des octets 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 de caractères et binaires. Il n’existe aucun champ descripteur qui contient ces informations pour d’autres types.

La valeur de taille d’affichage de tous les types de données correspond à la valeur dans 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 de la taille de colonne, des chiffres décimaux et de la taille d’affichage retournées par SQLColumns, SQLProcedureColumns et SQLGetTypeInfo, en revanche, retournent des caractéristiques d’objets de base de données, telles 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 des colonnes, les chiffres décimaux et la longueur d’octets de transfert des colonnes à la source de données ; ces valeurs ne sont pas nécessairement les mêmes que les valeurs de l’SQL_DESC_PRECISION, SQL_DESC_SCALE et SQL_DESC_OCTET_LENGTH champs de descripteur.

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

Rubriques connexes :