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:
Você inicia a operação chamando a função de membro de Edição .
Modifique os campos adequados do registro atual.
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: realizando uma junção (ODBC)
Conjunto de registros: adicionando, atualizando e excluindo registros (ODBC)