Compartir por


Invalidar la precisión y escala predeterminadas de tipos de datos numéricos

Cuando el campo SQL_DESC_TYPE de un ARD se establece en SQL_C_NUMERIC, llamando a SQLBindCol o SQLSetDescField, el campo SQL_DESC_SCALE del ARD se establece en 0 y el campo SQL_DESC_PRECISION se establece en una precisión predeterminada definida por el controlador. Esto también es cierto cuando el campo SQL_DESC_TYPE de un APD se establece en SQL_C_NUMERIC, llamando a SQLBindParameter o SQLSetDescField. Esto se aplica a los parámetros de entrada, entrada/salida o salida.

Si cualquiera de los valores predeterminados descritos anteriormente no son aceptables para una aplicación, la aplicación debe establecer el campo SQL_DESC_SCALE o SQL_DESC_PRECISION llamando a SQLSetDescField o SQLSetDescRec.

Si la aplicación llama a SQLGetData para devolver datos en una estructura de SQL_C_NUMERIC, se usan los campos predeterminados SQL_DESC_SCALE y SQL_DESC_PRECISION. Si los valores predeterminados no son aceptables, la aplicación debe llamar a SQLSetDescRec o SQLSetDescField para establecer los campos y, a continuación, llamar a SQLGetData con un TargetType de SQL_ARD_TYPE para usar los valores de los campos descriptor.

Cuando se llama a SQLPutData , la llamada usa los campos SQL_DESC_SCALE y SQL_DESC_PRECISION del registro descriptor que corresponde 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.