Desplazamiento y captura de filas
Para utilizar un cursor desplazable, una aplicación ODBC debe:
Establecer las capacidades del cursor mediante SQLSetStmtAttr.
Abrir el cursor mediante SQLExecute o SQLExecDirect.
Desplazarse y capturar filas con SQLFetch o SQLFetchScroll.
Tanto SQLFetch como SQLFetchSroll pueden capturar bloques de filas de una vez. El número de filas devueltas se especifica utilizando SQLSetStmtAttr para establecer el parámetro SQL_ATTR_ROW_ARRAY_SIZE.
Las aplicaciones ODBC pueden utilizar SQLFetch para capturar filas mediante un cursor de sólo avance.
SQLFetchScroll se utiliza para desplazarse alrededor de un cursor. SQLFetchScroll permite capturar los conjuntos de filas siguiente, anterior, primero y último además de realizar una captura relativa (capturar las n primeras filas del conjunto de filas actual) y una captura absoluta (capturar el conjunto de filas a partir de la fila n). Si n es negativo en una captura absoluta, las filas se cuentan a partir del final del conjunto de resultados. Una captura absoluta de la fila -1 significa que se capturará el conjunto de filas que empieza con la última fila del conjunto de resultados.
Es probable que las aplicaciones que sólo utilizan SQLFetchScroll por sus capacidades de cursor de bloque, como informes, atraviesen el conjunto de resultados una sola vez, utilizando sólo la opción para capturar el conjunto de filas siguiente. Por otro lado, las aplicaciones basadas en pantalla pueden aprovechar de todas las capacidades de SQLFetchScroll. Si la aplicación establece el tamaño del conjunto de filas en el número de filas mostradas en la pantalla y enlaza los búferes de pantalla al conjunto de resultados, puede convertir las operaciones de la barra de desplazamiento directamente en llamadas a SQLFetchScroll.
Funcionamiento de la barra de desplazamiento |
Opción de desplazamiento de SQLFetchScroll |
---|---|
Re Pág |
SQL_FETCH_PRIOR |
Av Pág |
SQL_FETCH_NEXT |
Línea arriba |
SQL_FETCH_RELATIVE con FetchOffset igual a -1 |
Línea abajo |
SQL_FETCH_RELATIVE con FetchOffset igual a 1 |
Cuadro de desplazamiento hacia arriba |
SQL_FETCH_FIRST |
Cuadro de desplazamiento hacia abajo |
SQL_FETCH_LAST |
Posición del cuadro de desplazamiento aleatoria |
SQL_FETCH_ABSOLUTE |