Share via


Conversions de type de données

Les données peuvent être converties d’un type à un autre à l’une des quatre fois : lorsque les données sont transférées d’une variable d’application à une autre (C à C), lorsque les données d’une variable d’application sont envoyées à un paramètre d’instruction (C à SQL), lorsque les données d’une colonne de jeu de résultats sont retournées dans une variable d’application (SQL to C), et quand les données sont transférées d’une colonne de source de données vers une autre (SQL vers SQL).

Toute conversion qui se produit lorsque les données sont transférées d’une variable d’application à une autre est en dehors de l’étendue de ce document.

Lorsqu’une application lie une variable à un paramètre de colonne ou d’instruction du jeu de résultats, l’application spécifie implicitement une conversion de type de données dans son choix du type de données de la variable d’application. Par exemple, supposons qu’une colonne contient des données entières. Si l’application lie une variable entière à la colonne, elle spécifie qu’aucune conversion n’est effectuée ; si l’application lie une variable de caractère à la colonne, elle spécifie que les données doivent être converties en entiers.

ODBC définit la façon dont les données sont converties entre chaque type de données SQL et C. En fait, ODBC prend en charge toutes les conversions raisonnables, telles que le caractère en entier et l’entier en float, et ne prend pas en charge les conversions mal définies, telles que float à date. Les pilotes sont nécessaires pour prendre en charge toutes les conversions pour chaque type de données SQL qu’ils prennent en charge. Pour obtenir la liste complète des conversions entre les types de données SQL et C, consultez Conversion de données de SQL en types de données C et conversion de données de C en types de données SQL dans l’annexe D : Types de données.

ODBC définit également une fonction scalaire pour convertir des données d’un type de données SQL en un autre. La fonction scalaire CONVERT est mappée par le pilote à la fonction scalaire ou aux fonctions scalaires sous-jacentes définies pour effectuer des conversions dans la source de données. Étant donné que cette fonction est mappée à des fonctions spécifiques au SGBD, ODBC ne définit pas la façon dont ces conversions fonctionnent ou quelles conversions doivent être prises en charge. Une application découvre les conversions prises en charge par un pilote et une source de données spécifiques via les options de SQL_CONVERT dans SQLGetInfo. Pour plus d’informations sur la fonction scalaire CONVERT , consultez Séquences d’échappement dans ODBC et fonction de conversion de type de données explicite.