Partilhar via


Transações no ODBC

As transações no ODBC são gerenciadas no nível da conexão. Quando um aplicativo conclui uma transação, ele confirma ou reverte todo o trabalho concluído por meio de todos os identificadores de instrução nessa conexão. Para confirmar ou reverter uma transação, os aplicativos devem chamar SQLEndTran em vez de enviar uma instrução COMMIT ou ROLLBACK.

Um aplicativo chama SQLSetConnectAttr para alternar entre os dois modos ODBC de gerenciamento de transações:

  • Modo de confirmação automática

    Cada instrução é confirmada automaticamente quando é concluída com êxito. Quando você executa no modo de confirmação automática, nenhuma outra função de gerenciamento de transações é necessária.

  • Modo de confirmação manual

    Todas as instruções executadas são incluídas na mesma transação até serem interrompidas especificamente chamando SQLEndTran.

O modo de confirmação automática é o modo de transação padrão para ODBC. Quando uma conexão é feita, ela fica no modo de confirmação automática até que SQLSetConnectAttr seja chamado para alternar para o modo de confirmação manual definindo o modo de confirmação automática desativado. Quando um aplicativo desativa o compromisso automático, a próxima instrução enviada ao banco de dados inicia uma transação. Em seguida, a transação permanece em vigor até que o aplicativo chame SQLEndTran com as opções SQL_COMMIT ou SQL_ROLLBACK. O comando enviado ao banco de dados após o SQLEndTran iniciar a próxima transação.

Se um aplicativo alternar de confirmação manual para modo de confirmação automática, o driver confirmará todas as transações abertas atualmente na conexão.

Os aplicativos ODBC não devem usar instruções de transação Transact-SQL, como BEGIN TRANSACTION, COMMIT TRANSACTION ou ROLLBACK TRANSACTION, pois isso pode causar comportamento indeterminado no driver. Um aplicativo ODBC deve ser executado no modo de confirmação automática e não usar nenhuma instrução ou funções de gerenciamento de transações, ou executar no modo de confirmação manual e usar a função ODBC SQLEndTran para confirmar ou reverter transações.

Consulte Também

Executando transações (ODBC)