Método IObjectContext::D isableCommit (comsvcs.h)

Declara que as atualizações transacionais do objeto estão em um estado inconsistente e não podem ser confirmadas em seu estado atual.

Sintaxe

HRESULT DisableCommit();

Retornar valor

Esse método pode retornar os valores a seguir.

Código de retorno Descrição
S_OK
O método foi concluído com sucesso. As atualizações transacionais do objeto não podem ser confirmadas até que o objeto chame EnableCommit ou SetComplete.
E_UNEXPECTED
Erro inesperado. Isso pode acontecer se um objeto passar seu ponteiro IObjectContext para outro objeto e o outro objeto chamar DisableCommit usando esse ponteiro. Um ponteiro IObjectContext não é válido fora do contexto do objeto que o obteve originalmente.
CONTEXT_E_NOCONTEXT
O objeto atual não tem um contexto associado a ele. Isso provavelmente ocorre porque ele não foi criado com um dos métodos COM+ CreateInstance.

Comentários

Você pode usar o método DisableCommit para impedir que uma transação confirme prematuramente entre chamadas de método em um objeto com estado. Quando um objeto invoca DisableCommit, ele indica que seu trabalho é inconsistente e que não pode concluir seu trabalho até receber outras invocações de método do cliente. Ele também indica que precisa manter seu estado para executar esse trabalho. Isso impede que o COM+ desative o objeto e recupere seus recursos no retorno de uma chamada de método. Quando um objeto tiver chamado DisableCommit, se um cliente tentar confirmar a transação antes que o objeto tenha chamado EnableCommit ou SetComplete, a transação será anulada.

Por exemplo, suponha que você tenha um componente GeneralLedger que atualiza um banco de dados. Um cliente faz várias chamadas para um objeto GeneralLedger para postar entradas em várias contas. Há uma restrição de integridade que diz que os débitos devem ser iguais aos créditos quando a invocação do método final retorna ou a transação deve ser anulada. O objeto GeneralLedger tem um método de inicialização no qual o cliente o informa sobre a sequência de chamadas que o cliente fará e o objeto GeneralLedger chama DisableCommit. O objeto mantém seu estado entre chamadas para que, após a chamada final na sequência ser feita, o objeto possa garantir que a restrição de integridade seja atendida antes de permitir que seu trabalho seja confirmado.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows 2000 Server [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho comsvcs.h

Confira também

IObjectContext