Partilhar via


Como rolar e efetuar fetch de linhas

Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure PDW (Sistema de Plataforma de Análise) do Azure Synapse Analytics

Para usar um cursor rolável, um aplicativo ODBC deve:

  • Defina os recursos do cursor usando SQLSetStmtAttr.

  • Abra o cursor usando SQLExecute ou SQLExecDirect.

  • Role e busque linhas usando SQLFetch ou SQLFetchScroll.

Tanto o SQLFetch quanto o SQLFetchSroll podem buscar blocos de linhas por vez. O número de linhas retornadas é especificado usando SQLSetStmtAttr para definir o parâmetro SQL_ATTR_ROW_ARRAY_SIZE.

Os aplicativos ODBC podem usar SQLFetch para buscar por meio de um cursor somente de avanço.

SQLFetchScroll é usado para rolar em torno de um cursor. SQLFetchScroll dá suporte à busca dos conjuntos de linhas seguinte, anterior, primeiro e último, além da busca relativa (buscar o conjunto de linhas n linhas do início do conjunto de linhas atual) e busca absoluta (buscar o conjunto de linhas começando na linha n). Se n for negativo em um fetch absoluto, as linhas serão contadas do final do conjunto de resultados. Uma busca absoluta da linha -1 significa buscar o conjunto de linhas que inicia com a última linha no conjunto de resultados.

Os aplicativos que usam SQLFetchScroll apenas para seus recursos de cursor em bloco, como relatórios, provavelmente passarão pelo conjunto de resultados uma só vez, usando apenas a opção de efetuar fetch do próximo conjunto de linhas. Aplicativos baseados em tela, por outro lado, podem usufruir de todos os recursos do SQLFetchScroll. Se o aplicativo definir o tamanho do conjunto de linhas como o número de linhas exibidas na tela e associar os buffers de tela ao conjunto de resultados, ele poderá converter as operações da barra de rolagem diretamente em chamadas para SQLFetchScroll.

Operação de barra de rolagem Opção de rolagem SQLFetchScroll
Uma página acima SQL_FETCH_PRIOR
Uma página abaixo SQL_FETCH_NEXT
Uma linha acima SQL_FETCH_RELATIVE com FetchOffset igual a -1
Uma linha abaixo SQL_FETCH_RELATIVE com FetchOffset igual a 1
Caixa de rolagem no início SQL_FETCH_FIRST
Caixa de rolagem no fim SQL_FETCH_LAST
Posição aleatória da caixa de rolagem SQL_FETCH_ABSOLUTE

Nesta seção

Confira também

Uso de cursores (ODBC)