Partilhar via


Instantâneo

Um instantâneo é um conjunto de registros que reflete uma exibição estática dos dados tal como existiam no momento em que o instantâneo foi criado. Ao abrir o instantâneo e avançar para todos os registos, o conjunto de registos que ele contém e os seus valores não mudam até se reconstruir o instantâneo chamando Requery.

Observação

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

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

Sugestão

Um instantâneo é um cursor estático ODBC. Na verdade, os cursores estáticos não obtêm uma linha de dados até que você role até 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. Note, no entanto, que a rolagem até o final implica sobrecarga extra e pode diminuir 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 seu snapshot, então você pode querer reconstruí-la de tempos em tempos.

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

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

Observação

Para alguns drivers ODBC, instantâneos (cursores estáticos) podem não ser atualizáveis. Verifique a documentação do driver para os tipos de cursor suportados e os tipos de simultaneidade suportados. Para garantir instantâneos que possam ser atualizados, certifique-se de carregar a biblioteca de cursores na memória ao criar um objeto CDatabase. Para obter mais informações, consulte ODBC: The ODBC Cursor Library.

Observação

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

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

Ver também

Open Database Connectivity (ODBC)