Бөлісу құралы:


Преобразование данных из 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).