Compartir a través de


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

En esta sección