Share via


Usar cursores de bloque con las API

Los cursores de servidor de la API no se limitan a recopilar una fila cada vez; pueden recuperar varias filas en cada recopilación. Cuando se trabaja con una base de datos cliente/servidor, como Microsoft SQL Server, es más eficaz recuperar varias filas a la vez. El número de filas devueltas en una recopilación recibe el nombre de tamaño del conjunto de filas. Los cursores cuyo tamaño de conjunto de filas es mayor que uno reciben el nombre de cursores de bloque. En las API admitidas, se pueden utilizar los cursores de bloque de las siguientes formas:

  • ODBC

    • Establezca el atributo SQL_ATTR_ROWSET_SIZE de la instrucción como el tamaño del conjunto de filas.

    • Utilice el enlace de modo de columna o de modo de fila para enlazar las columnas con matrices de variables que contendrán los datos de las filas devueltas. El número de elementos de cada matriz equivale al tamaño del conjunto de filas.

    • Cada llamada a SQLFetchScroll recopila el número de filas establecido con SQL_ATTR_ROWSET_SIZE.

  • OLE DB

    • Asigne una matriz de identificadores de filas y enlace las columnas que representa cada identificador con una matriz de variables que contendrán los datos de la columna.

    • Llame a IRowset::GetNextRows con el parámetro cRows establecido como el número de identificadores de la matriz de identificadores de filas y la dirección de la matriz de identificadores de filas en el parámetro prghRows.

  • ADO

    • Defina una variable de tipo variant para que contenga los datos del número de filas que desea recuperar.

    • Opcionalmente, sitúese en el punto adecuado del cursor con los métodos Move, MoveFirst, MoveLast, MoveNext y MovePrevious del conjunto de registros.

    • Llame al método GetRows del conjunto de registros mediante el parámetro array con la dirección de la variable de tipo variant que va a contener las filas y el parámetro Crows establecido en el número de filas que se van a devolver. Otra opción consiste en utilizar el parámetro Start para indicar la posición de recuperación en el conjunto de registros.