C en SQL : Intervalles de jours-heures
Les identificateurs des types de données ODBC C de l’intervalle de jour sont les suivants :
SQL_C_INTERVAL_DAY
SQL_C_INTERVAL_HOUR
SQL_C_INTERVAL_MINUTE
SQL_C_INTERVAL_SECOND
SQL_C_INTERVAL_DAY_TO_HOUR
SQL_C_INTERVAL_DAY_TO_MINUTE
SQL_C_INTERVAL_DAY_TO_SECOND
SQL_C_INTERVAL_HOUR_TO_MINUTE
SQL_C_INTERVAL_HOUR_TO_SECOND
SQL_C_INTERVAL_MINUTE_TO_SECOND
Le tableau suivant montre les types de données ODBC SQL vers lesquels les données d’intervalle C peuvent être converties. Pour obtenir une explication des colonnes et des termes de la table, consultez Conversion de données de C en types de données SQL.
Identificateur de type SQL | Test | SQLSTATE |
---|---|---|
SQL_CHAR[a] SQL_VARCHAR[a] SQL_LONGVARCHAR[a] |
Longueur d’octet de >colonne = Longueur d’octet de caractère Longueur d’octet < de colonne Longueur d’octet du caractère[a] La valeur de données n’est pas un littéral d’intervalle valide |
n/a 22001 22015 |
SQL_WCHAR[a] SQL_WVARCHAR[a] SQL_WLONGVARCHAR[a] |
Longueur des caractères de >colonne = Longueur des caractères des données Longueur des caractères < de colonne Longueur du caractère des données[a] La valeur de données n’est pas un littéral d’intervalle valide |
n/a 22001 22015 |
SQL_TINYINT[b] SQL_SMALLINT[b] SQL_INTEGER[b] SQL_BIGINT[b] SQL_NUMERIC[b] SQL_DECIMAL[b] |
La conversion d’un intervalle à champ unique n’a pas entraîné la troncation de chiffres entiers La conversion a entraîné la troncation de chiffres entiers |
n/a 22003 |
SQL_INTERVAL_DAY SQL_INTERVAL_HOUR SQL_INTERVAL_MINUTE SQL_INTERVAL_SECOND SQL_INTERVAL_DAY_TO_HOUR SQL_INTERVAL_DAY_TO_MINUTE SQL_INTERVAL_DAY_TO_SECOND SQL_INTERVAL_HOUR_TO_MINUTE SQL_INTERVAL_HOUR_TO_SECOND SQL_INTERVAL_MINUTE_TO_SECOND |
La valeur des données a été convertie sans troncation des champs Un ou plusieurs champs de valeur de données ont été tronqués pendant la conversion |
n/a 22015 |
[a] Tous les types de données d’intervalle C peuvent être convertis en type de données caractère.
[b] Si le champ de type dans la structure d’intervalles est tel que l’intervalle est un champ unique (SQL_DAY, SQL_HOUR, SQL_MINUTE ou SQL_SECOND), le type C d’intervalle peut être converti en n’importe quel numérique exact (SQL_TINYINT, SQL_SMALLINT, SQL_INTEGER, SQL_BIGINT, SQL_DECIMAL ou SQL_NUMERIC).
La conversion par défaut d’un type C d’intervalle est en type SQL d’intervalle de jour correspondant.
Le pilote ignore la valeur de longueur/d’indicateur lors de la conversion des données du type de données interval C et suppose que la taille de la mémoire tampon de données correspond à la taille du type de données interval C. La valeur length/indicator est transmise dans l’argument StrLen_or_Ind dans SQLPutData et dans la mémoire tampon spécifiée avec l’argument StrLen_or_IndPtr dans SQLBindParameter. La mémoire tampon de données est spécifiée avec l’argument DataPtr dans SQLPutData et l’argument ParameterValuePtr dans SQLBindParameter.
L’exemple suivant montre comment envoyer des données C d’intervalle stockées dans la structure SQL_INTERVAL_STRUCT dans une colonne de base de données. La structure d’intervalles contient un intervalle DAY_TO_SECOND ; il sera stocké dans une colonne de base de données de type SQL_INTERVAL_DAY_TO_MINUTE.
SQL_INTERVAL_STRUCT is;
SQLINTEGER cbValue;
// Initialize the interval struct to contain the DAY_TO_SECOND
// interval "154 days, 22 hours, 44 minutes, and 10 seconds"
is.intval.day_second.day = 154;
is.intval.day_second.hour = 22;
is.intval.day_second.minute = 44;
is.intval.day_second.second = 10;
is.interval_sign = SQL_FALSE;
// Bind the dynamic parameter
SQLBindParameter(hstmt, 1, SQL_PARAM_INPUT, SQL_C_INTERVAL_DAY_TO_SECOND,
SQL_INTERVAL_DAY_TO_MINUTE, 0, 0, &is,
sizeof(SQL_INTERVAL_STRUCT), &cbValue);
// Execute an insert statement; "interval_column" is a column
// whose data type is SQL_INTERVAL_DAY_TO_MINUTE.
SQLExecDirect(hstmt,"INSERT INTO table(interval_column) VALUES (?)",SQL_NTS);
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour