Partilhar via


Instantâneo

Um instantâneo é um conjunto de registros que reflete uma exibição estática dos dados como eles existiam no momento em que o instantâneo foi criado. Quando você abre o instantâneo e passa para todos os registros, o conjunto de registros que ele contém e os valores deles não são alterados até você recompilar o instantâneo chamando Requery.

Observação

Este tópico aplica-se às classes ODBC do MFC. Se você estiver usando as classes MFC DAO em vez das classes ODBC do MFC, confira CDaoRecordset::Open para obter uma descrição de conjuntos de registros do tipo instantâneo.

Você pode criar instantâneos atualizáveis ou somente leitura com as classes de banco de dados. Ao contrário de um dynaset, um instantâneo atualizável não reflete alterações nos valores de registro feitos por outros usuários, mas reflete as atualizações e exclusões feitas pelo programa. Os registros adicionados a um instantâneo não ficam visíveis para o instantâneo até que você chame Requery.

Dica

Um instantâneo é um cursor estático ODBC. Os cursores estáticos não obtêm realmente uma linha de dados até que você role para esse registro. Para garantir que todos os registros sejam recuperados imediatamente, você pode rolar até o final do conjunto de registros e, em seguida, rolar até o primeiro registro que deseja ver. No entanto, observe que rolar até o final envolve sobrecarga extra e pode reduzir o desempenho.

Os instantâneos são mais valiosos quando você precisa que os dados permaneçam fixos durante suas operações, como quando você está gerando um relatório ou executando cálculos. Mesmo assim, a fonte de dados pode divergir consideravelmente do instantâneo, portanto, pode ser conveniente recompilá-lo de tempos em tempos.

O suporte a instantâneo é baseado na Biblioteca de Cursores ODBC, que fornece cursores estáticos e atualizações posicionadas (necessárias para capacidade de atualização) para qualquer driver de Nível 1. A DLL da biblioteca de cursores precisa ser carregada na memória para esse suporte. Ao construir um objeto CDatabase e chamar a respectiva função de membro OpenEx, você precisa especificar a opção CDatabase::useCursorLib do parâmetro dwOptions . Se você chamar a função membro Open, a biblioteca de cursores será carregada por padrão. Se você estiver usando dynasets em vez de instantâneos, não faça com que a biblioteca de cursores seja carregada.

Os instantâneos só ficarão disponíveis se a Biblioteca de Cursores ODBC tiver sido carregada quando o objeto CDatabase foi construído ou se o driver ODBC que você estiver usando der suporte a cursores estáticos.

Observação

Para alguns drivers ODBC, os instantâneos (cursores estáticos) podem não ser atualizáveis. Verifique a documentação do driver para conhecer os tipos de cursor compatíveis e os tipos de simultaneidade aos quais eles dão suporte. Para garantir que os instantâneos sejam atualizáveis, carregue a biblioteca de cursores na memória ao criar um objeto CDatabase. Para obter mais informações, confira ODBC: A Biblioteca de Cursores ODBC.

Observação

Se você quiser usar instantâneos e dynasets, deverá baseá-los em dois objetos CDatabase diferentes (duas conexões diferentes).

Para obter mais informações sobre as propriedades que os instantâneos compartilham com todos os conjuntos de registros, confira Conjunto de registros (ODBC). Para obter mais informações sobre ODBC e instantâneos, incluindo a Biblioteca de Cursores ODBC, confira ODBC.

Confira também

ODBC (conectividade de banco de dados aberto)