Compartilhar via


Snapshot

Um instantâneo é um conjunto de registros reflete uma exibição estática dos dados, como ele existia no momento em que o snapshot foi criado. Quando você abre o instantâneo e move para todos os registros, o conjunto de registros que ele contém e seus valores não são alteradas até que você reconstruir o instantâneo chamando Requery.

ObservaçãoObservação

Este tópico se aplica às classes MFC ODBC. Se você estiver usando as classes do MFC DAO em vez das classes MFC ODBC, consulte CDaoRecordset::Open para obter uma descrição de conjuntos de registros do tipo de 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 refletir as alterações feitas por outros usuários de valores de registro, mas ela refletir atualizações e exclusões feitas por seu programa. Registros adicionados a um snapshot não se tornam visíveis para o instantâneo até que você chame Requery.

Dica

Um instantâneo é um cursor estático do ODBC. Cursores estáticos não realmente obter uma linha de dados até que você rolar para esse registro. Para garantir que todos os registros recuperados imediatamente, você pode rolar até o final do seu conjunto de registros e role para o primeiro registro que você deseja ver. No entanto, observe que a rolagem até o final envolve a sobrecarga extra e pode diminuir o desempenho.

Os instantâneos são mais valiosos quando precisar que os dados permanecem fixos durante suas operações, como quando estiver gerando um relatório ou executar cálculos. Mesmo assim, a fonte de dados pode divergem consideravelmente seu snapshot, então você pode querer reconstruí-lo de tempos em tempos.

Suporte de snapshot é baseado em ODBC Cursor Library, que fornece os cursores estáticos e posicionado atualizações (necessárias para atualizabilidade) para qualquer driver de nível 1. A DLL da biblioteca de cursor deve ser carregado na memória para esse suporte. Quando você construir um CDatabase objeto e chamar seu OpenEx a função de membro, você deve especificar o CDatabase::useCursorLib opção do dwOptions parâmetro. Se você chamar o Abrir função de membro, a biblioteca de cursor é carregada por padrão. Se você estiver usando dynasets em vez de snapshots, não deseja fazer com que a biblioteca de cursores ser carregado.

Instantâneos só estarão disponíveis se a biblioteca de cursores ODBC foi carregada quando o CDatabase objeto foi construído ou o driver ODBC que você está usando suporta Cursores estáticos.

ObservaçãoObservação

Para alguns drivers de ODBC snapshots (Cursores estáticos) podem não ser atualizáveis. Verifique a documentação do driver para os tipos de cursor suportado e os tipos de simultaneidade que eles suportam. Para garantir instantâneos atualizáveis, certifique-se de carregar a biblioteca de cursor na memória, quando você cria um CDatabase objeto. Para obter mais informações, consulte ODBC: A ODBC Cursor Library.

ObservaçãoObservação

Se você quiser usar snapshots e dynasets, você deve baseá-los em duas diferentes CDatabase objetos (duas conexões diferentes).

Para obter mais informações sobre o compartilhamento de instantâneos de propriedades com todos os conjuntos de registros, consulte recordset (odbc). Para obter mais informações sobre o ODBC e snapshots*,* inclusive a biblioteca de cursores ODBC, consulte ODBC.

Consulte também

Conceitos

Open Database Connectivity (ODBC)