Compartilhar via


Cursores de somente avanço

O tipo de cursor padrão típico, chamado de cursor de somente avanço (ou não rolável), pode mover-se somente para frente ao longo do conjunto de resultados. Um cursor de somente avanço não dá suporte à rolagem (a capacidade de mover para frente e para trás no conjunto de resultados); ele só dá suporte à busca de linhas desde o início até o final do conjunto de resultados. Em alguns cursores de somente avanço (por exemplo, a biblioteca de cursores do SQL Server), todas as instruções insert, update e delete feitas pelo usuário atual (ou confirmadas por outros usuários) que afetarem linhas no conjunto de resultados ficarão visíveis quando as linhas forem buscadas. Porém, como o cursor não podem ser revertido, as alterações feitas nas linhas no banco de dados depois que a linha foi buscada não são visíveis pelo cursor.

Depois que os dados da linha atual são processados, o cursor de somente avanço libera os recursos que foram usados para armazenar esses dados. Cursores somente de avanço são dinâmicos por padrão, o que significa que todas as alterações são detectadas conforme a linha atual é processada. Isso permite uma abertura do cursor mais rápida e que o conjunto de resultados exiba as atualizações feitas nas tabelas subjacentes.

Embora os cursores somente de avanço não sejam compatíveis com rolagem para trás, seu aplicativo pode retornar ao início do conjunto de resultados fechando e reabrindo o cursor. Essa é uma maneira eficaz de trabalhar com pequenas quantidades de dados. Como alternativa, seu aplicativo pode ler o conjunto de resultados uma vez, armazenar os dados em cache localmente e procurar o cache de dados local.

Se o aplicativo não precisar percorrer o conjunto de resultados, o cursor de somente avanço será a melhor maneira de recuperar dados rapidamente com a menor quantidade de sobrecarga. Use o adOpenForwardOnly CursorTypeEnum para indicar que você deseja usar um cursor de somente avanço no ADO.

Consulte Também

Cursores estáticos
Cursores do conjunto de chaves
Cursores dinâmicos