Partilhar via


Classes e threads ODBC

Iniciar com o MFC 4,2, não há suporte de multithreading para classes de MFC ODBC. Observe, entretanto, que a MFC não fornece suporte de multithreading para classes de DAO.

Suporte de multithreading para classes de ODBC tem algumas restrições. Como essas classes envolvem a API ODBC, são restritas ao suporte de multithreading de componentes em que são compiladas. Por exemplo, muitos drivers ODBC não é seguro para threads; em virtude disso, as classes de MFC ODBC não são seguras das se você usa com um desses drivers. Você deve verificar se o driver específico é thread-safe.

Ao criar um aplicativo multi-threaded, você deve ter muito cuidado ao usar vários threads para manipular o mesmo objeto. Por exemplo, usar o mesmo objeto de CRecordset em dois threads pode causar problemas ao recuperar dados; uma operação de busca em um thread pode substituir os dados buscados no outro thread. Uso mais comum das classes MFC ODBC threads separados é compartilhar um objeto aberto de CDatabase pelos threads para usar a mesma conexão ODBC, com um objeto separado de CRecordset em cada thread. Observe que você não deve passar um objeto fechado de CDatabase a um objeto de CRecordset em outro thread.

Dica

Se você deve ter vários threads manipular o mesmo objeto, você deve implementar os mecanismos adequados de sincronização, como seções críticos.Lembre-se de que determinadas operações, como Abrir, não são protegidas.Você deve ter a certeza de que essas operações não serão chamadas simultaneamente de threads separados.

Para obter mais informações sobre como criar aplicativos multithreaded, consulte Tópicos de multithreading.

Consulte também

Conceitos

Conectividade de banco de dados aberto (ODBC)

Programação de acesso a dados (MFC/ATL)