Compartir a través de


Tipos de descriptores de

Un descriptor se usa para describir uno de los siguientes elementos:

  • Un conjunto de cero o más parámetros. Se puede usar un descriptor de parámetros para describir:

    • El búfer de parámetros de la aplicación, que contiene los argumentos dinámicos de entrada establecidos por la aplicación o los argumentos dinámicos de salida después de la ejecución de una instrucción CALL de SQL.

    • El búfer de parámetros de implementación. Para los argumentos dinámicos de entrada, contiene los mismos argumentos que el búfer de parámetros de la aplicación, después de cualquier conversión de datos que pueda especificar la aplicación. Para los argumentos dinámicos de salida, contiene los argumentos devueltos, antes de cualquier conversión de datos que pueda especificar la aplicación.

    Para los argumentos dinámicos de entrada, la aplicación debe funcionar en un descriptor de parámetros de aplicación antes de ejecutar cualquier instrucción SQL que contenga marcadores de parámetro dinámicos. Para los argumentos dinámicos de entrada y salida, la aplicación puede especificar distintos tipos de datos de los del descriptor de parámetros de implementación para lograr la conversión de datos.

  • Una sola fila de datos de base de datos. Se puede usar un descriptor de fila para describir:

    • El búfer de filas de implementación, que contiene la fila de la base de datos. (Estos búferes contienen conceptualmente datos escritos o leídos de la base de datos. Sin embargo, no se especifica la forma almacenada de datos de base de datos. Una base de datos podría realizar una conversión adicional en los datos de su formulario en el búfer de implementación.)

    • El búfer de filas de la aplicación, que contiene la fila de datos tal como se presenta a la aplicación, después de cualquier conversión de datos que pueda especificar la aplicación.

    La aplicación funciona en el descriptor de fila de la aplicación en cualquier caso en el que los datos de columna de la base de datos deben aparecer en las variables de aplicación. Para lograr la conversión de datos de columna, la aplicación puede especificar distintos tipos de datos de los del descriptor de fila de implementación.

Los tipos de descriptores se resumen en la tabla siguiente.

Tipo de búfer Filas Parámetros dinámicos
Búfer de aplicaciones Descriptor de fila de aplicación (ARD) Descriptor de parámetros de aplicación (APD)
Búfer de implementación Descriptor de fila de implementación (IRD) Descriptor de parámetros de implementación (IPD)

Para el parámetro o los búferes de fila, si la aplicación especifica distintos tipos de datos en los registros correspondientes de los descriptores de implementación y aplicación, el controlador realiza la conversión de datos cuando usa los descriptores. Por ejemplo, puede convertir valores numéricos y datetime en formato de cadena de caracteres. (Para obtener conversiones válidas, consulte Apéndice D: Tipos de datos.)

Un descriptor puede realizar roles distintos. Las instrucciones distintas pueden compartir cualquier descriptor que la aplicación asigne explícitamente. Un descriptor de fila de una instrucción puede servir como descriptor de parámetros en otra instrucción.

Siempre se sabe si un descriptor determinado es un descriptor de aplicación o un descriptor de implementación, incluso si el descriptor aún no se ha usado en una operación de base de datos. Para los descriptores que la implementación asigna implícitamente, la implementación registra la fila predefinida relativa al identificador de instrucción. Cualquier descriptor que asigne la aplicación llamando a SQLAllocHandle es un descriptor de aplicación.