Compartir a través de


Desplazamientos de enlace de parámetros

Una aplicación puede especificar que se agrega un desplazamiento a las direcciones de búfer de parámetros enlazados y las direcciones de búfer de longitud o indicador correspondientes cuando se llama a SQLExecDirect o SQLExecute . El resultado de estas adiciones determina las direcciones usadas en estas operaciones.

Los desplazamientos de enlace permiten a una aplicación cambiar los enlaces sin llamar a SQLBindParameter para parámetros enlazados previamente. Una llamada a SQLBindParameter para volver a enlazar un parámetro cambia la dirección del búfer y el puntero de longitud o indicador. El reenlace con un desplazamiento, por otro lado, consiste simplemente en agregar un desplazamiento a la dirección del búfer del parámetro enlazado existente y la dirección del búfer de longitud o del indicador. Cuando se usan desplazamientos, los enlaces son una "plantilla" de cómo se diseñan los búferes de aplicación y la aplicación puede mover esta "plantilla" a diferentes áreas de memoria cambiando el desplazamiento. Se puede especificar un nuevo desplazamiento en cualquier momento y siempre se agrega a los valores enlazados originalmente.

Para especificar un desplazamiento de enlace, la aplicación establece el atributo de instrucción SQL_ATTR_PARAM_BIND_OFFSET_PTR en la dirección de un búfer SQLINTEGER. Antes de que la aplicación llame a una función que usa las asignaciones, coloca un desplazamiento en bytes en este búfer, siempre y cuando ni la dirección del búfer de parámetros ni la del búfer de longitud o indicador sea 0 y el parámetro enlazado esté en la instrucción SQL. La suma de la dirección y el desplazamiento debe ser una dirección válida. (Esto significa que o tanto el desplazamiento como la dirección a la que se agrega el desplazamiento pueden no ser válidos, siempre y cuando su suma sea una dirección válida).

Nota:

Los desplazamientos de binding no son compatibles con los controladores ODBC 2.x.