SQL à C : Intervalles d’années-mois
Les identificateurs des types de données SQL ODBC d’intervalles d’année-mois sont les suivants :
- SQL_INTERVAL_MONTH
- SQL_INTERVAL_YEAR
- SQL_INTERVAL_YEAR_TO_MONTH
Le tableau suivant montre les types de données ODBC C dans lesquels les données SQL d’intervalles d’année-mois peuvent être converties. Pour obtenir une explication des colonnes et des termes de la table, consultez Conversion de données sql en types de données C.
Identificateur de type C | Test | TargetValuePtr | StrLen_or_IndPtr | SQLSTATE |
---|---|---|---|---|
SQL_C_INTERVAL_MONTH[a] SQL_C_INTERVAL_YEAR[a] SQL_C_INTERVAL_YEAR_TO_MONTH[a] |
Partie des champs de fin non tronquée Partie tronquée des champs de fin La précision de pointe de la cible n’est pas assez grande pour contenir des données provenant de la source |
Données Données tronquées Indéfini |
Longueur des données en octets Longueur des données en octets Indéfini |
n/a 01S07 22015 |
SQL_C_STINYINT[b] SQL_C_UTINYINT[b] SQL_C_USHORT[b] SQL_C_SHORT[b] SQL_C_SLONG[b] SQL_C_ULONG[b] SQL_C_NUMERIC[b] SQL_C_BIGINT[b] |
La précision d’intervalle était un champ unique et les données ont été converties sans troncation La précision d’intervalle était un champ unique et tronqué La précision d’intervalle n’était pas un seul champ |
Données Données tronquées Indéfini |
Taille du type de données C Longueur des données en octets Taille du type de données C |
n/a 22003 22015 |
SQL_C_BINARY | Longueur d’octet des données <= BufferLength Longueur d’octet de la mémoire tampon des données > |
Données Indéfini |
Longueur des données en octets Indéfini |
n/a 22003 |
SQL_C_CHAR | Mémoire tampon de longueur <d’octet de caractère Nombre de chiffres entiers (par opposition à des chiffres fractionnaires<) BufferLength Nombre de chiffres entiers (par opposition à des chiffres fractionnaires >) = BufferLength |
Données Données tronquées Indéfini |
Taille du type de données C Taille du type de données C Indéfini |
n/a 01004 22003 |
SQL_C_WCHAR | Longueur de caractères <BufferLength Nombre de chiffres entiers (par opposition à des chiffres fractionnaires<) BufferLength Nombre de chiffres entiers (par opposition à des chiffres fractionnaires >) = BufferLength |
Données Données tronquées Indéfini |
Taille du type de données C Taille du type de données C Indéfini |
n/a 01004 22003 |
[a] Un type SQL d’intervalle annuel-mois peut être converti en n’importe quel type D’intervalle annuel-mois C.
[b] Si la précision de l’intervalle est un seul champ (un champ DE TYPE ANNÉE ou MOIS), le type SQL d’intervalle peut être converti en n’importe quel type numérique exact (SQL_C_STINYINT, SQL_C_UTINYINT, SQL_C_USHORT, SQL_C_SHORT, SQL_C_SLONG, SQL_C_ULONG ou SQL_C_NUMERIC).
Conversions par défaut
La conversion par défaut d’un type SQL d’intervalle est le type de données d’intervalle C correspondant. L’application lie ensuite la colonne ou le paramètre (ou définit le champ SQL_DESC_DATA_PTR dans l’enregistrement approprié de l’ARD) pour qu’il pointe vers la structure SQL_INTERVAL_STRUCT initialisée (ou passe un pointeur vers la structure SQL_ INTERVAL_STRUCT en tant qu’argument TargetValuePtr dans un appel à SQLGetData).