Compartilhar via


Utilizando cursores em bloco com APIs

Os cursores de servidor de API não estão limitados à busca em uma linha por vez; eles podem recuperar diversas linhas em cada busca. Ao trabalhar com um banco de dados de cliente/servidor, como MicrosoftSQL Server, é mais eficiente buscar várias linhas por vez. O número de linhas retornadas em uma busca é conhecido como tamanho do conjunto de linhas. Os cursores que têm um tamanho do conjunto de linhas maior que um são chamados de cursores em bloco. Nas APIs suportadas, você pode utilizar os cursores em bloco das seguintes formas:

  • ODBC

    • Define o atributo da instrução SQL_ATTR_ROWSET_SIZE para o tamanho do conjunto de linhas.

    • Utiliza a associação de coluna ou de linha para associar as colunas a matrizes de variáveis para manter os dados das linhas retornadas. O número de elementos em cada matriz é igual ao tamanho do conjunto de linhas.

    • Cada chamada para SQLFetchScroll busca o número do conjunto de linhas com SQL_ATTR_ROWSET_SIZE.

  • OLE DB

    • Aloca uma matriz de identificadores de linhas e associa as colunas representadas por cada identificador a uma matriz de variáveis para manter os dados da coluna.

    • Chama IRowset::GetNextRows com o parâmetro cRows definido como o número de identificadores na matriz do identificador de linha e o endereço da matriz dos identificadores de linhas no parâmetro prghRows.

  • ADO

    • Esmaece uma variante para manter os dados para o número de linhas que deseja recuperar.

    • Opcionalmente, posiciona no ponto correto do cursor utilizando os métodos Move, MoveFirst, MoveLast, MoveNext e MovePrevious do conjunto de registros.

    • Chama o método do conjunto de registros GetRows com o parâmetro array que mantém o endereço da variante para manter as linhas e o parâmetro Crows que mantém o número de linhas a ser retornado. Opcionalmente, tem o parâmetro Start indicando a posição da busca no conjunto de registros.