Tamanho do conjunto de linhas
O tamanho do conjunto de linhas a ser usado depende do aplicativo. Os aplicativos baseados em tela geralmente seguem uma destas duas estratégias. A primeira é definir o tamanho do conjunto de linhas como o número de linhas exibidas na tela. Se o usuário redimensionar a tela, o aplicativo alterará o tamanho do conjunto de linhas de acordo. A segunda é definir o tamanho do conjunto de linhas como um número maior, como 100, o que reduz o número de chamadas à fonte de dados. O aplicativo rola localmente no conjunto de linhas, quando possível, e pesquisa novas linhas somente quando rola para fora do conjunto de linhas.
Outros aplicativos, como relatórios, tendem a definir o tamanho do conjunto de linhas cini o maior número de linhas que o aplicativo pode razoavelmente manipular. Com um conjunto de linhas maior, às vezes a sobrecarga da rede por linha é reduzida. O tamanho exato de um conjunto de linhas depende do tamanho de cada linha e da quantidade de memória disponível.
O tamanho do conjunto de linhas é definido por uma chamada a SQLSetStmtAttr, com um argumento Attribute de SQL_ATTR_ROW_ARRAY_SIZE. O aplicativo pode alterar o tamanho do conjunto de linhas, vincular novos buffers de conjunto de linhas (chamando SQLBindCol ou especificando um deslocamento de associação) mesmo após as linhas terem sido buscadas ou ambos. As implicações da alteração do tamanho do conjunto de linhas dependem da função:
SQLFetch e SQLFetchScroll usam o tamanho do conjunto de linhas no momento da chamada para determinar quantas linhas buscar. No entanto, SQLFetchScroll com FetchOrientation de SQL_FETCH_NEXT incrementa o cursor com base no conjunto de linhas da pesquisa anterior e pesquisa um conjunto de linhas com base no tamanho do conjunto de linhas atual.
SQLSetPos usa o tamanho do conjunto de linhas que está em vigor na chamada anterior para SQLFetch ou SQLFetchScroll, pois SQLSetPos opera em um conjunto de linhas que já foi definido. SQLSetPos também selecionará o novo tamanho do conjunto de linhas se SQLBulkOperations tiver sido chamado após a alteração do tamanho do conjunto de linhas.
SQLBulkOperations usa o tamanho do conjunto de linhas em vigor no momento da chamada, pois executa operações em uma tabela independente de qualquer conjunto de linhas buscado.