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 agregaciones determina las direcciones usadas en estas operaciones.

Los desplazamientos de enlace permiten a una aplicación cambiar los enlaces sin llamar a SQLBindParameter en el caso de 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. Por otro lado, si se vuelve a enlazar con un desplazamiento, simplemente se agrega un desplazamiento a la dirección del búfer de parámetros enlazados existente y la dirección del búfer de longitud o 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 los enlaces, coloca un desplazamiento en bytes en este búfer, siempre y cuando la dirección del búfer de parámetros ni la dirección del búfer de longitud o indicador sea 0 y el parámetro enlazado se encuentre en la instrucción SQL. La suma de la dirección y el desplazamiento deben ser una dirección válida. (Esto significa que 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 controladores ODBC 2.x no admiten los desplazamientos de enlaces.