Compartilhar via


Conjunto de registros: bloqueando registros (ODBC)

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

Este tópico explica:

  • Os tipos de bloqueio de registro disponíveis.

  • Como bloquear registros no conjunto de registros durante atualizações.

Quando você usa um conjunto de registros para atualizar um registro na fonte de dados do, o aplicativo pode bloquear o registro para que nenhum outro usuário poderá atualizar o registro ao mesmo tempo. O estado de um registro atualizado por dois usuários é o mesmo tempo indefinido a menos que o sistema possa garantir que dois usuários não podem atualizar um registro simultaneamente.

Dica

Este tópico se aplica a objetos derivados de CRecordset no qual a busca de linhas do volume não foi implementado.Se você implementar a linha em massa que pesquisa, algumas das informações não se aplica.Por exemplo, você não pode chamar funções de membro de Editar e de Atualizar .Para obter mais informações sobre a linha em massa que pesquisa, consulte Conjunto de registros: Buscando registros em massa (ODBC).

Modos de bloqueio interfaces

As classes base de dados de fornece dois modos de bloqueio interfaces:

  • Bloqueio otimista (padrão)

  • Bloqueio pessimista

Atualizar um registro ocorre em três etapas:

  1. Você inicia a operação chamando a função de membro de Edição .

  2. Modifique os campos adequados do registro atual.

  3. Você encerra a operação — e confirmar normalmente a atualização — chamando a função de membro de Atualização .

O bloqueio otimista bloqueia o registro na fonte de dados somente durante a chamada de Atualizar . Se você usar o bloqueio otimista em um ambiente multiusuário, o aplicativo deve tratar uma condição de falha de Atualizar . O bloqueio pessimista bloqueia o registro para que você chamar Editar e não o libera até que você chame Atualizar (falhas são indicadas por meio do mecanismo de CDBException , não por um valor de Falso retornados por Atualizar). O bloqueio pessimista tem uma caneta de desempenho potencial para outros usuários, porque o acesso simultâneo ao mesmo registro pode ter que esperar até a conclusão do processo de Atualizar do seu aplicativo.

Bloqueando registros no conjunto de registros

Se você quiser alterar modo de bloqueio de um objeto recordset da opção, você deve alterar o modo antes de chamar Editar.

Para alterar o modo de bloqueio atual para o conjunto de registros

  • Chame a função de membro de SetLockingMode , especificando CRecordset::pessimistic ou CRecordset::optimistic.

O novo modo de bloqueio permanece em vigor até que você o modifique novamente ou o conjunto de registros é fechado.

Dica

Relativamente poucos drivers ODBC oferecem suporte atualmente o bloqueio pessimista.

Consulte também

Conceitos

Conjunto de registros (ODBC)

Conjunto de registros: realizando uma junção (ODBC)

Conjunto de registros: adicionando, atualizando e excluindo registros (ODBC)