Поделиться через


Переопределение заданной по умолчанию точности ведущего значения и точности значения долей секунды для интервальных типов данных

Если для поля SQL_DESC_TYPE ARD задан тип даты и интервала C, вызывая SQLBindCol или SQLSetDescField, поле SQL_DESC_PRECISION (которое содержит точность интервала секунд) имеет следующие значения по умолчанию:

  • 6 для метки времени и всех типов данных интервала со вторым компонентом.

  • 0 для всех других типов данных.

Для всех типов данных интервала поле дескриптора SQL_DESC_DATETIME_INTERVAL_PRECISION, содержащее точность начального поля интервала, имеет значение по умолчанию 2.

Если для поля SQL_DESC_TYPE в APD задано значение даты и интервала C, вызывая SQLBindParameter или SQLSetDescField, поля SQL_DESC_PRECISION и SQL_DESC_DATETIME_INTERVAL_PRECISION в APD задаются по умолчанию. Это верно для входных параметров, но не для входных и выходных параметров.

Вызов SQLSetDescRec задает интервал, ведущий точность по умолчанию, но задает точность интервала секунд (в поле SQL_DESC_PRECISION) значение аргумента Точности .

Если одно из заданных ранее значений по умолчанию недоступно для приложения, приложение должно задать поле SQL_DESC_PRECISION или SQL_DESC_DATETIME_INTERVAL_PRECISION путем вызова SQLSetDescField.

Если приложение вызывает SQLGetData для возврата данных в тип datetime или interval C, используется интервал по умолчанию, который приводит к точности и точности интервала. Если значение по умолчанию недопустимо, приложение должно вызвать SQLSetDescField , чтобы задать поле дескриптора или SQLSetDescRec , чтобы задать SQL_DESC_PRECISION. Вызов SQLGetData должен иметь targetType SQL_ARD_TYPE для использования значений в полях дескриптора.

При вызове SQLPutData точность интервала и интервала точности секунд считывается из полей записи дескриптора, соответствующей параметру или столбцу типа APD для вызовов SQLExecute или SQLExecDirect, или полей ARD для вызовов SQLBulkOperations или SQLSetPos.