Conjunto de registros: repetindo consulta a um conjunto de registros (ODBC)

Este tópico aplica-se às classes ODBC do MFC.

Este tópico explica como você pode usar um objeto de conjunto de registros para repetir novamente (ou seja, atualizar) do banco de dados e quando você pode querer fazer isso com a função de membro Requery.

As principais razões para solicitar um conjunto de registros são:

  • Atualize o conjunto de registros com relação aos registros adicionados por você ou por outros usuários e registros excluídos por outros usuários (os que você exclui já estão refletidos no conjunto de registros).

  • Atualize o conjunto de registros com base na alteração de valores de parâmetro.

Atualizar o conjunto de registros

Frequentemente, você desejará repetir a consulta do objeto de conjunto de registros para atualizá-lo. Em um ambiente de banco de dados multiusuário, outros usuários podem fazer alterações nos dados durante a vida do seu conjunto de registros. Para obter mais informações sobre quando o conjunto de registros reflete as alterações feitas por outros usuários e quando os conjuntos de registros de outros usuários refletem suas alterações, confira Conjunto de registros: como os conjuntos de registros atualizam os registros (ODBC) e Dynaset.

Repetir a consulta com base em novos parâmetros

Outro uso frequente — e igualmente importante — do Repetir Consulta é selecionar um novo conjunto de registros com base na alteração de valores de parâmetro.

Dica

A velocidade de consulta provavelmente será significativamente mais rápida se você chamar Requery com valores de parâmetro alterados do que se você chamar Open novamente.

Repetir consulta com Dynasets vs. Instantâneos

Como os dynasets devem apresentar um conjunto de registros com dados dinâmicos atualizados, você deseja repetir a consulta dos dynasets com frequência se desejar refletir as adições de outros usuários. Os instantâneos, por outro lado, são úteis porque você pode confiar com segurança em seu conteúdo estático enquanto prepara relatórios, calcula totais e assim por diante. Ainda assim, às vezes, você também pode querer requerer um instantâneo. Em um ambiente multiusuário, os dados de instantâneo podem perder a sincronização com a fonte de dados à medida que outros usuários alteram o banco de dados.

Repetir consulta de um objeto de conjunto de registros

  1. Chame a função membro Repetir Consulta do objeto.

Como alternativa, você pode fechar e reabrir o conjunto de registros original. Em ambos os casos, o novo conjunto de registros representa o estado atual da fonte de dados.

Para um exemplo, confira Exibições de registro: preenchendo uma caixa de listagem por meio de um segundo conjunto de registros.

Dica

Para otimizar o desempenho Requery, evite alterar o filtro ou a classificação do conjunto de registros. Altere apenas o valor do parâmetro antes de chamar Requery.

Se a chamada Requery falhar, você poderá tentar novamente; caso contrário, seu aplicativo deve terminar normalmente. Uma chamada para Requery ou Open pode falhar por qualquer uma de várias razões. Talvez ocorra um erro de rede; ou, durante a chamada, após a liberação dos dados existentes, mas antes da obtenção dos novos dados, outro usuário poderá obter acesso exclusivo; ou a tabela da qual seu conjunto de registros depende pode ser excluída.

Confira também

Conjunto de registros (ODBC)
Conjunto de registros: associando dinamicamente colunas de dados (ODBC)
Conjunto de registros: criando e fechando conjuntos de registros (ODBC)