重写数字数据类型的默认精度和小数位数

通过调用 SQLBindColSQLSetDescField 将 ARD 中的SQL_DESC_TYPE字段设置为SQL_C_NUMERIC时,ARD 中的SQL_DESC_SCALE字段设置为 0,SQL_DESC_PRECISION字段设置为驱动程序定义的默认精度。 当 APD 中的SQL_DESC_TYPE字段通过调用 SQLBindParameterSQLSetDescField 设置为 SQL_C_NUMERIC 时也是如此。 这适用于输入、输入/输出或输出参数。

如果应用程序不接受上述任一默认值,则应用程序应通过调用 SQLSetDescField 或 SQLSetDescRec 来设置SQL_DESC_SCALE或SQL_DESC_PRECISION字段。

如果应用程序调用 SQLGetData 将数据返回到SQL_C_NUMERIC结构中,则使用默认SQL_DESC_SCALE和SQL_DESC_PRECISION字段。 如果默认值不可接受,则应用程序必须调用 SQLSetDescRecSQLSetDescField 来设置字段,然后调用 TargetType 为 SQL_ARD_TYPE 的 SQLGetData,以使用描述符字段中的值。

调用 SQLPutData 时,调用使用与执行时数据参数或列对应的描述符记录SQL_DESC_SCALE和SQL_DESC_PRECISION字段,这些字段是用于调用 SQLExecuteSQLExecDirect 的 APD 字段,或用于调用 SQLBulkOperationsSQLSetPos 的 ARD 字段。