Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Em aplicativos modernos baseados em tela, o usuário rola para trás e para frente pelos dados. Para esses aplicativos, retornar a uma linha buscada anteriormente é um problema. Uma possibilidade é fechar e reabrir o cursor e buscar linhas até que o cursor atinja a linha necessária. Outra possibilidade é ler o conjunto de resultados, armazená-lo em cache localmente e implementar a rolagem no aplicativo. Ambas as possibilidades funcionam bem apenas com conjuntos de resultados pequenos e a última possibilidade é difícil de implementar. Uma solução melhor é usar um cursor rolável, que pode se mover para trás e para frente no conjunto de resultados.
Um cursor rolável é comumente usado em aplicativos modernos baseados em tela em que o usuário rola para frente e para trás pelos dados. No entanto, os aplicativos devem usar cursores roláveis somente quando cursores somente para frente não resolverem o problema, pois cursores roláveis geralmente são mais caros do que cursores somente para frente.
A capacidade de se mover para trás levanta uma questão não aplicável aos cursores somente para frente: um cursor rolável deve detectar alterações feitas em linhas buscadas anteriormente? Ou seja, ele deve detectar linhas atualizadas, excluídas e recém-inseridas?
Essa pergunta surge porque a definição de um conjunto de resultados - o conjunto de linhas que corresponde a determinados critérios - não indica quando as linhas são verificadas para ver se correspondem a esses critérios, nem indica se as linhas devem conter os mesmos dados sempre que forem buscadas. A omissão anterior possibilita que os cursores roláveis detectem se as linhas foram inseridas ou excluídas, enquanto a última possibilita que eles detectem dados atualizados.
Às vezes, a capacidade de detectar alterações é útil, às vezes não. Por exemplo, um aplicativo contábil precisa de um cursor que ignore todas as alterações; balancear livros será impossível se o cursor mostrar as alterações mais recentes. Por outro lado, um sistema de reserva de companhias aéreas precisa de um cursor que mostre as alterações mais recentes nos dados; sem esse cursor, ele deve consultar continuamente o banco de dados para mostrar a disponibilidade de voo mais atualizada.
Para cobrir as necessidades de diferentes aplicativos, o ODBC define quatro tipos diferentes de cursores roláveis. Esses cursores variam tanto em despesas quanto em sua capacidade de detectar alterações no conjunto de resultados. Observe que, se um cursor rolável puder detectar alterações nas linhas, ele só poderá detectá-las quando tentar refetar essas linhas; não há como a fonte de dados notificar o cursor de alterações nas linhas buscadas no momento. Observe também que a visibilidade das alterações também é controlada pelo nível de isolamento da transação; para obter mais informações, consulte Isolamento de Transação.
Esta seção contém os seguintes tópicos.