Buscar linhas com SQLBulkOperations
É possível efetuar um novo fetch dos dados podem em um conjunto de linhas usando identificadores por uma chamada a SQLBulkOperations. As linhas das quais efetuar fetch são identificadas pelos identificadores em uma coluna de identificadores associada. Não é efetuado fetch de colunas com um valor de SQL_COLUMN_IGNORE.
Para efetuar fetch em massa com SQLBulkOperations, o aplicativo faz o seguinte:
Recupera e armazena em cache os indicadores de todas as linhas a serem atualizadas. Se houver mais de um indicador e a associação por coluna for usada, os indicadores serão armazenados em uma matriz. Se houver mais de um indicador e a associação por linha for usada, os indicadores serão armazenados em uma matriz de estruturas de linha.
Define o atributo da instrução SQL_ATTR_ROW_ARRAY_SIZE para o número de linhas a efetuar fetch e associa o armazenamento em buffer que contém o valor do indicador ou a matriz de indicadores à coluna 0.
Define o valor no buffer de comprimento/indicador de cada coluna conforme o necessário. Esse é o comprimento de byte dos dados ou SQL_NTS para colunas associadas a buffers de cadeia de caracteres, o comprimento de byte dos dados para colunas associadas a buffers binários e SQL_NULL_DATA para todas as colunas a serem definidas como NULL. O aplicativo define o valor no buffer de comprimento/indicador das colunas que devem ser definidas como padrão (se houver) ou NULL (se não existir) como SQL_COLUMN_IGNORE.
Chama SQLBulkOperations com o argumento Operation definido como SQL_FETCH_BY_BOOKMARK.
O aplicativo não precisa usar a matriz de operação de linha para impedir que a operação seja executada em determinadas colunas. O aplicativo seleciona as linhas das quais deseja efetuar fetch copiando apenas os indicadores dessas linhas para a matriz de indicadores associados.