Compartir a través de


Recuperación de resultados (avanzado)

Una aplicación puede especificar que se agrega un offset a las direcciones de búfer de datos enlazado y las direcciones de búfer de longitud o indicador correspondientes cuando se llama a SQLBulkOperations, SQLFetch, SQLFetchScroll o SQLSetPos. Los resultados de estas adiciones determinan las direcciones usadas en estas operaciones.

Los desplazamientos de enlace permiten a una aplicación modificar los enlaces sin tener que llamar a SQLBindCol para las columnas ya enlazadas. Una llamada a SQLBindCol para volver a enlazar los datos cambia la dirección del búfer y el puntero de longitud o indicador. El reenlace con un desplazamiento, por otro lado, simplemente agrega un desplazamiento a las direcciones del búfer vinculado de datos y del búfer de longitud/indicador existentes. 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 offset de enlace, la aplicación establece el atributo de instrucción SQL_ATTR_ROW_BIND_OFFSET_PTR a la dirección de un búfer de tipo SQLINTEGER. Antes de que la aplicación llame a una función que use los enlaces, como SQLBulkOperations, SQLFetch,SQLFetchScroll o SQLSetPos, coloca un desplazamiento en bytes en este búfer, siempre y cuando la dirección del búfer de longitud o indicador no sea 0 y siempre que la columna enlazada esté en el conjunto de resultados. La suma de la dirección y el desplazamiento debe ser una dirección válida. (Esto significa que tanto el desplazamiento como la dirección a la que se suma el desplazamiento pueden no ser válidos, siempre que su total sea una dirección válida). El atributo de sentencia SQL_ATTR_ROW_BIND_OFFSET_PTR es un puntero que permite aplicar el valor de desplazamiento a múltiples conjuntos de datos enlazados, los cuales pueden modificarse al cambiar un único valor de desplazamiento. Una aplicación debe asegurarse de que el puntero sigue siendo válido hasta que se cierre el cursor.

Nota:

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

Esta sección contiene los temas siguientes.