Partilhar via


Obtendo linhas com SQLBulkOperations

Os dados podem ser recarregados para um conjunto de linhas usando marcadores através de uma chamada ao SQLBulkOperations. As linhas a buscar são identificadas pelos marcadores numa coluna de marcadores. Colunas com valor de SQL_COLUMN_IGNORE não são buscadas.

Para realizar buscas em massa com SQLBulkOperations, a aplicação faz o seguinte:

  1. Recupera e armazena em cache os marcadores de todas as linhas a atualizar. Se houver mais do que um marcador e se for usada encadernação por colunas, os marcadores são armazenados numa matriz; Se existirem mais do que um marcador e for usada encadernação por linhas, os marcadores são armazenados numa matriz de estruturas de linhas.

  2. Define o atributo da instrução SQL_ATTR_ROW_ARRAY_SIZE ao número de linhas a buscar e vincula o buffer que contém o valor do favorito, ou o array de favoritos, à coluna 0.

  3. Define o valor no buffer de comprimento/indicador de cada coluna conforme necessário. Este é o comprimento em bytes dos dados ou SQL_NTS para colunas ligadas a buffers de string, o comprimento em bytes dos dados para colunas ligadas a buffers binários, e SQL_NULL_DATA para quaisquer colunas que sejam definidas como NULL. A aplicação define o valor no buffer de comprimento/indicador das colunas que devem ser definidas para o seu valor padrão (se existir) ou "NULL" (se não existir) como SQL_COLUMN_IGNORE.

  4. Chama SQLBulkOperations com o argumento Operation definido para SQL_FETCH_BY_BOOKMARK.

Não há necessidade de a aplicação utilizar a matriz de operações por linha para evitar que a operação seja executada em certas colunas. A aplicação seleciona as linhas que quer obter copiando apenas os marcadores dessas linhas para a matriz de marcadores vinculados.