Rolando e buscando linhas
Para usar um cursor rolável, um aplicativo ODBC deve:
Definir os recursos do cursor usando SQLSetStmtAttr.
Abrir o cursor usando SQLExecute ou SQLExecDirect.
Rolar e buscar linhas usando SQLFetch ou SQLFetchScroll.
SQLFetch e SQLFetchSroll podem buscar blocos de linhas simultaneamente. O número de linhas retornadas é especificado usando-se SQLSetStmtAttr para definir o parâmetro SQL_ATTR_ROW_ARRAY_SIZE.
Aplicativos de ODBC podem usar SQLFetch para buscar por um cursor de somente avanço.
SQLFetchScroll é usado para rolar ao redor de um cursor. SQLFetchScroll dá suporte à busca dos conjuntos de linhas próximo e anterior e do primeiro e do último conjuntos de linhas, além da busca relativa (busque n linhas do conjunto de linhas do início do conjunto de linhas atual) e da busca absoluta (busque o conjunto de linhas que começa 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 da linha -1 significa buscar o conjunto de linhas que inicia com a última linha no conjunto de resultados.
Os aplicativos que utilizam SQLFetchScroll apenas para os respectivos recursos de cursores em bloco, como relatórios, provavelmente passarão pelo conjunto de resultados uma vez, usando apenas a opção para buscar o próximo conjunto de linhas. Por outro lado, aplicativos baseados em tela podem tirar proveito de todos os recursos de 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 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 |