Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
O tamanho do conjunto de linhas a usar depende da aplicação. As aplicações baseadas em ecrã seguem normalmente uma de duas estratégias. A primeira é definir o tamanho do conjunto de linhas para o número de linhas exibidas no ecrã; Se o utilizador redimensionar o ecrã, a aplicação altera o tamanho do conjunto de linhas em conformidade. A segunda é definir o tamanho do conjunto de linhas para um número maior, como 100, o que reduz o número de chamadas para a fonte de dados. A aplicação desloca-se localmente dentro do conjunto de linhas sempre que possível e só recupera novas linhas quando desloca-se para fora do conjunto de linhas.
Outras aplicações, como os relatórios, tendem a definir o tamanho do conjunto de linhas para o maior número de linhas que a aplicação consegue razoavelmente gerir – com um conjunto de linhas maior, a sobrecarga de rede por linha é por vezes 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 ao SQLSetStmtAttr com um argumento de atributo de SQL_ATTR_ROW_ARRAY_SIZE. A aplicação pode alterar o tamanho do conjunto de linhas, associar novos buffers de conjunto de linhas (chamando SQLBindCol ou especificando um offset de ligação) mesmo depois de as linhas terem sido obtidas, ou ambos. As implicações de alterar o 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, o SQLFetchScroll com uma FetchOrientation de SQL_FETCH_NEXT incrementa o cursor com base no conjunto de linhas do fetch anterior e depois obtém um conjunto de linhas com base no tamanho atual do conjunto de linhas.
O SQLSetPos utiliza o tamanho do conjunto de linhas que está em vigor na chamada anterior ao SQLFetch ou SQLFetchScroll, porque o SQLSetPos opera num conjunto de linhas que já foi definido. O SQLSetPos também irá detetar o novo tamanho do conjunto de linhas se o SQLBulkOperations tiver sido chamado após a alteração do tamanho do conjunto de linhas.
O SQLBulkOperations utiliza o tamanho do conjunto de linhas em vigor no momento da chamada, porque realiza operações numa tabela independente de qualquer conjunto de linhas obtido.