SQLGetData (biblioteca de cursores)
Importante
Esta característica se quitará en una versión futura de Windows. Evite usar esta característica en el nuevo trabajo de desarrollo y planee modificar las aplicaciones que actualmente usan esta característica. Microsoft recomienda usar la funcionalidad del cursor del controlador.
En este tema se describe el uso de la función SQLGetData en la biblioteca de cursores. Para obtener información general sobre SQLGetData, vea Función SQLGetData.
La biblioteca de cursores implementa SQLGetData construyendo primero una instrucción SELECT con una cláusula WHERE que enumera los valores almacenados en su caché para cada columna enlazada de la fila actual. A continuación, ejecuta la instrucción SELECT para volver a seleccionar la fila y llama a SQLGetData en el controlador para recuperar los datos del origen de datos (en lugar de la memoria caché).
Precaución
La cláusula WHERE construida por la biblioteca de cursores para identificar la fila actual puede no identificar las filas, identificar una fila diferente o identificar más de una fila. Para obtener más información, vea Construcción de instrucciones buscadas.
Si el atributo de instrucción SQL_ATTR_USE_BOOKMARKS se establece en SQL_UB_VARIABLE, se puede llamar a SQLGetData en la columna 0 para devolver datos de marcador.
Las llamadas a SQLGetData están sujetas a las siguientes restricciones:
No se puede llamar a SQLGetData para cursores de solo avance.
Solo se puede llamar a SQLGetData cuando se cumplen las condiciones siguientes: una instrucción SELECT generó el conjunto de resultados; la instrucción SELECT no contenía una combinación, una cláusula UNION o una cláusula GROUP BY; y las columnas que usaron un alias o una expresión en la lista de selección no estaban enlazadas con SQLBindCol.
Si el controlador solo admite una instrucción activa, la biblioteca de cursores captura el resto del conjunto de resultados antes de ejecutar la instrucción SELECT y llamar a SQLGetData.