重写间隔数据类型的默认前导和秒精度

通过调用 SQLBindColSQLSetDescField 将 ARD 的SQL_DESC_TYPE字段设置为 datetime 或 interval C 类型时,包含间隔秒精度) (SQL_DESC_PRECISION字段设置为以下默认值:

  • 6 表示时间戳和具有第二个组件的所有间隔数据类型。

  • 对于所有其他数据类型,为 0。

对于所有间隔数据类型,包含间隔前导字段精度的SQL_DESC_DATETIME_INTERVAL_PRECISION描述符字段设置为默认值 2。

如果 APD 中的SQL_DESC_TYPE字段设置为 datetime 或 interval C 类型,则通过调用 SQLBindParameterSQLSetDescField,将 APD 中的SQL_DESC_PRECISION和SQL_DESC_DATETIME_INTERVAL_PRECISION字段设置为前面给定的默认值。 这适用于输入参数,但对于输入/输出或输出参数则不适用。

调用 SQLSetDescRec 将间隔前导精度设置为默认值,但将SQL_DESC_PRECISION字段中的间隔秒精度 () 设置为其 Precision 参数的值。

如果应用程序不接受前面给定的默认值之一,则应用程序应通过调用 SQLSetDescField 来设置SQL_DESC_PRECISION或SQL_DESC_DATETIME_INTERVAL_PRECISION字段。

如果应用程序调用 SQLGetData 将数据返回到 datetime 或 interval C 类型,则使用默认的间隔前导精度和间隔秒精度。 如果不接受任何一个默认值,应用程序必须调用 SQLSetDescField 来设置描述符字段,或 调用 SQLSetDescRec 来设置SQL_DESC_PRECISION。 对 SQLGetData 的调用应具有 targetType SQL_ARD_TYPE才能使用描述符字段中的值。

调用 SQLPutData 时,将从与执行时数据参数或列对应的描述符记录的字段读取间隔前导精度和间隔秒精度,这些字段是调用 SQLExecuteSQLExecDirect 的 APD 字段,或用于调用 SQLBulkOperationsSQLSetPos 的 ARD 字段。