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.
Em aplicações modernas baseadas em ecrã, o utilizador percorre os dados para trás e para a frente. Para tais aplicações, regressar a uma linha previamente obtida é um problema. Uma possibilidade é fechar e reabrir o cursor e depois buscar linhas até o cursor atingir a linha necessária. Outra possibilidade é ler o conjunto de resultados, cacheá-lo localmente e implementar scrolling na aplicação. Ambas as possibilidades funcionam bem apenas com conjuntos de resultados pequenos, e a segunda possibilidade é difícil de implementar. Uma solução melhor é usar um cursor rolável, que pode mover-se para trás e para trás no conjunto de resultados.
Um cursor rolável é comumente usado em aplicações modernas baseadas em ecrã, nas quais o utilizador percorre os dados para a frente e para trás. No entanto, as aplicações devem usar cursores roláveis apenas quando os cursores apenas para frente não forem suficientes, pois os cursores roláveis são geralmente mais caros do que os cursores apenas para frente.
A possibilidade de recuar levanta uma questão não aplicável a cursores unidirecionais: Deverá um cursor rolante detetar alterações feitas a linhas previamente obtidas? Ou seja, deve detetar linhas atualizadas, apagadas e recém-inseridas?
Esta questão surge porque a definição de conjunto de resultados – o conjunto de linhas que corresponde a certos critérios – não indica quando as linhas são verificadas para verificar se correspondem a esse critério, nem indica se as linhas devem conter os mesmos dados sempre que são buscadas. A primeira omissão permite que os cursores roláveis detetem se linhas foram inseridas ou eliminadas, enquanto a segunda permite que detetem dados atualizados.
A capacidade de detetar mudanças é por vezes útil, outras vezes não. Por exemplo, uma aplicação de contabilidade precisa de um cursor que ignore todas as alterações; Equilibrar os livros é impossível se o cursor mostrar as últimas alterações. Por outro lado, um sistema de reservas aéreas precisa de um cursor que mostre as alterações mais recentes aos dados; sem tal cursor, tem de consultar continuamente a base de dados para mostrar a disponibilidade de voos mais atualizada.
Para cobrir as necessidades de diferentes aplicações, o ODBC define quatro tipos distintos de cursores roláveis. Estes cursores variam tanto em custo como na capacidade de detetar alterações no conjunto de resultados. Note que, se um cursor deslizável conseguir detetar alterações nas linhas, só as pode detetar quando tenta recuperar essas linhas; Não há forma de a fonte de dados notificar o cursor das alterações nas linhas atualmente buscadas. Note-se também que a visibilidade das alterações é controlada pelo nível de isolamento da transação; para mais informações, consulte Isolamento de Transações.
Esta seção contém os seguintes tópicos.
Rolagem Relativa e Absoluta