Compartir a través de


Reemplazar predeterminado inicial y la precisión de segundos para los tipos de datos Interval

Cuando el campo SQL_DESC_TYPE de un ARD se establece en un tipo datetime o interval C, llamando a SQLBindCol o SQLSetDescField, el campo SQL_DESC_PRECISION (que contiene la precisión del intervalo de segundos) se establece en los valores predeterminados siguientes:

  • 6 para la marca de tiempo y todos los tipos de datos de intervalo con un segundo componente.

  • 0 para todos los demás tipos de datos.

Para todos los tipos de datos de intervalo, el campo descriptor SQL_DESC_DATETIME_INTERVAL_PRECISION, que contiene la precisión del campo inicial del intervalo, se establece en un valor predeterminado de 2.

Cuando el campo de SQL_DESC_TYPE de un APD se establece en un tipo datetime o interval C, llamando a SQLBindParameter o SQLSetDescField, los campos SQL_DESC_PRECISION y SQL_DESC_DATETIME_INTERVAL_PRECISION del APD se establecen en el valor predeterminado especificado anteriormente. Esto es true para los parámetros de entrada, pero no para los parámetros de entrada/salida o salida.

Una llamada a SQLSetDescRec establece el intervalo que conduce a la precisión predeterminada, pero establece la precisión de los segundos de intervalo (en el campo SQL_DESC_PRECISION) en el valor de su argumento Precision .

Si cualquiera de los valores predeterminados especificados anteriormente no es aceptable para una aplicación, la aplicación debe establecer el campo SQL_DESC_PRECISION o SQL_DESC_DATETIME_INTERVAL_PRECISION llamando a SQLSetDescField.

Si la aplicación llama a SQLGetData para devolver datos a un tipo datetime o interval C, se usa la precisión inicial del intervalo predeterminado y la precisión de los segundos del intervalo. Si el valor predeterminado no es aceptable, la aplicación debe llamar a SQLSetDescField para establecer el campo descriptor o SQLSetDescRec para establecer SQL_DESC_PRECISION. La llamada a SQLGetData debe tener un TargetType de SQL_ARD_TYPE para usar los valores de los campos descriptores.

Cuando se llama a SQLPutData , la precisión inicial del intervalo y la precisión de los segundos de intervalo se leen de los campos del registro descriptor que corresponden al parámetro o columna de datos en ejecución, que son campos APD para llamadas a SQLExecute o SQLExecDirect, o campos ARD para llamadas a SQLBulkOperations o SQLSetPos.