Compartilhar via


Buscar linhas com SQLBulkOperations

Os dados podem ser recuperados em um conjunto de linhas usando marcadores por uma chamada para SQLBulkOperations. As linhas a serem buscadas são identificadas pelos marcadores em uma coluna de marcador vinculado. Colunas com um valor de SQL_COLUMN_IGNORE não são buscadas.

Para executar buscas em massa com SQLBulkOperations, o aplicativo faz o seguinte:

  1. Recupera e armazena em cache os marcadores de todas as linhas a serem atualizadas. Se houver mais de um indicador e a associação em termos de coluna for usada, os indicadores serão armazenados em uma matriz; se houver mais de um indicador e a associação em linha for usada, os indicadores serão armazenados em uma matriz de estruturas de linha.

  2. Define o atributo de instrução SQL_ATTR_ROW_ARRAY_SIZE para o número de linhas a serem buscadas e associa o buffer que contém o valor do marcador ou a matriz de marcadores à coluna 0.

  3. Define o valor no buffer de comprimento/indicador de cada coluna conforme necessário. Esse é o comprimento de byte dos dados ou SQL_NTS para colunas associadas a buffers de cadeia de caracteres, o comprimento de bytes dos dados para colunas associadas a buffers binários e SQL_NULL_DATA para que todas as colunas sejam definidas como NULL. O aplicativo define o valor no buffer de comprimento/indicador dessas colunas que devem ser definidas como padrão (se houver) ou NULL (se não existir) como SQL_COLUMN_IGNORE.

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

Não é necessário que o aplicativo use a matriz de operação de linha para impedir que a operação seja executada em determinadas colunas. O aplicativo seleciona as linhas que deseja obter copiando apenas os marcadores para essas linhas na matriz de marcadores associada.