Преобразование данных из SQL в C: интервалы месяцев года
Идентификаторы для типов данных ODBC SQL за год являются следующими:
- SQL_INTERVAL_MONTH
- SQL_INTERVAL_YEAR
- SQL_INTERVAL_YEAR_TO_MONTH
В следующей таблице показаны типы данных ODBC C, в которые могут быть преобразованы данные SQL за месяц. Описание столбцов и терминов в таблице см. в разделе "Преобразование данных из SQL в типы данных C".
Идентификатор типа C | Тест | TargetValuePtr | StrLen_or_IndPtr | SQLSTATE |
---|---|---|---|---|
SQL_C_INTERVAL_MONTH[a] SQL_C_INTERVAL_YEAR[a] SQL_C_INTERVAL_YEAR_TO_MONTH[a] |
Часть конечных полей не усечена Конечные поля усечены Начальная точность целевого объекта недостаточно велика, чтобы хранить данные из источника |
Data Усеченные данные Undefined |
Длина данных в байтах Длина данных в байтах Undefined |
Недоступно 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] |
Точность интервала была одним полем, и данные были преобразованы без усечения Точность интервала была одним полем и усеченным целым Точность интервала не была одним полем |
Data Усеченные данные Undefined |
Размер типа данных C Длина данных в байтах Размер типа данных C |
Недоступно 22003 22015 |
SQL_C_BINARY | Длина байтов данных <= BufferLength Длина байтов данных >BufferLength |
Data Undefined |
Длина данных в байтах Undefined |
Недоступно 22003 |
SQL_C_CHAR | Длина <байтов символа BufferLength Число целых (в отличие от дробных) цифр <BufferLength Число целых (в отличие от дробных) цифр >= BufferLength |
Data Усеченные данные Undefined |
Размер типа данных C Размер типа данных C Undefined |
Недоступно 01004 22003 |
SQL_C_WCHAR | Буфер длины <символа BufferLength Число целых (в отличие от дробных) цифр <BufferLength Число целых (в отличие от дробных) цифр >= BufferLength |
Data Усеченные данные Undefined |
Размер типа данных C Размер типа данных C Undefined |
Недоступно 01004 22003 |
[a] Тип SQL-интервала года можно преобразовать в любой тип интервала года C.
[b] Если точность интервала является одним полем (одним из ГОД или МЕСЯЦ), тип интервала SQL можно преобразовать в любое точное число (SQL_C_STINYINT, SQL_C_UTINYINT, SQL_C_USHORT, SQL_C_SHORT, SQL_C_SLONG, SQL_C_ULONG или SQL_C_NUMERIC).
Преобразования по умолчанию
Преобразование по умолчанию типа SQL интервала — это соответствующий тип данных интервала C. Затем приложение привязывает столбец или параметр (или задает поле SQL_DESC_DATA_PTR в соответствующей записи ARD), чтобы указать на инициализированную SQL_INTERVAL_STRUCT структуру (или передает указатель на структуру SQL_ INTERVAL_STRUCT в качестве аргумента TargetValuePtr в вызове SQLGetData).