Rolagem e busca de linhas
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 SQLFetch quanto SQLFetchScroll podem buscar blocos de linhas de cada 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 um cursor somente para encaminhamento.
SQLFetchScroll é usado para rolar em torno de um cursor. SQLFetchScroll suporta a busca dos conjuntos de linhas seguinte, anterior, primeiro e último, além de busca relativa (buscar o conjunto de linhas n linhas do início do conjunto de linhas atual) e absoluta (buscar o conjunto de linhas começando na linha n). Se n for negativo em uma busca absoluta, as linhas serão contadas a partir do final do conjunto de resultados. Uma busca absoluta de -1 de linha significa buscar o conjunto de linhas que começa com a última linha do conjunto de resultados.
Os aplicativos que usam SQLFetchScroll apenas por seus recursos de cursor de bloco, como relatórios, provavelmente passarão pelo conjunto de resultados uma única vez, usando apenas a opção para buscar o próximo conjunto de linhas. Aplicativos baseados em tela, por outro lado, podem tirar proveito de todos os recursos do SQLFetchScroll. Se o aplicativo definir o tamanho do conjunto de linhas para o número de linhas exibidas na tela e vincular os buffers de tela ao conjunto de resultados, ele poderá traduzir as operações da barra de rolagem diretamente para chamadas para SQLFetchScroll.
Operação da barra de rolagem | Opção de rolagem SQLFetchScroll |
---|---|
Página acima | SQL_FETCH_PRIOR |
Página para baixo | SQL_FETCH_NEXT |
Alinhamento | SQL_FETCH_RELATIVE com FetchOffset igual a -1 |
Linha para baixo | SQL_FETCH_RELATIVE com FetchOffset igual a 1 |
Caixa de rolagem para o topo | SQL_FETCH_FIRST |
Caixa de rolagem para baixo | SQL_FETCH_LAST |
Posição aleatória da caixa de rolagem | SQL_FETCH_ABSOLUTE |