Compartir a través de


Campos aplazados

Los valores de los campos aplazados no se usan cuando se establecen, pero el controlador guarda las direcciones de las variables para un efecto aplazado. Para un descriptor de parámetros de aplicación, el controlador usa el contenido de las variables en el momento de la llamada a SQLExecDirect o SQLExecute. Para un descriptor de fila de aplicación, el controlador usa el contenido de las variables en el momento de la obtención.

Los siguientes son campos aplazados:

  • Los campos SQL_DESC_DATA_PTR y SQL_DESC_INDICATOR_PTR de un registro descriptor.

  • El campo SQL_DESC_OCTET_LENGTH_PTR de un registro descriptor de aplicación.

  • En el caso de una obtención de varias filas, los campos SQL_DESC_ARRAY_STATUS_PTR y SQL_DESC_ROWS_PROCESSED_PTR de un encabezado de descriptor.

Cuando se asigna un descriptor, los campos diferidos de cada registro descriptor tienen inicialmente un valor NULL. El significado del valor NULL es el siguiente:

  • Si SQL_DESC_ARRAY_STATUS_PTR tiene un valor NULL, una obtención de varias filas no devuelve este componente de la información de diagnóstico por fila.

  • Si SQL_DESC_DATA_PTR tiene un valor NULL, el registro no está vinculado.

  • Si el campo SQL_DESC_OCTET_LENGTH_PTR de un ARD tiene un valor NULL, el controlador no devuelve información de longitud para esa columna.

  • Si el campo SQL_DESC_OCTET_LENGTH_PTR de un APD tiene un valor NULL y el parámetro es una cadena de caracteres, el controlador asume que la cadena termina en NULL. Para parámetros dinámicos de salida, un valor NULL en este campo impide que el controlador devuelva información de longitud. (Si el campo SQL_DESC_TYPE no indica un parámetro de cadena de caracteres, se ignora el campo SQL_DESC_OCTET_LENGTH_PTR).

La aplicación no debe desasignar o descartar variables usadas para campos diferidos entre el momento en que las asocia con los campos y el momento en que el controlador las lee o escribe.