Classes e threads ODBC
A partir do MFC 4.2, há suporte multithreading para as classes ODBC do MFC. No entanto, observe que o MFC não fornece suporte a multithreading para as classes DAO.
O suporte multithreading para as classes ODBC tem algumas limitações. Como essas classes encapsulam a API ODBC, elas ficam restritas ao suporte multithreading dos componentes nos quais são criadas. Por exemplo, muitos drivers ODBC não são thread-safe. Portanto, as classes ODBC MFC não serão thread-safe se você as usar com um desses drivers. Você deve verificar se o driver específico é thread-safe.
Ao criar um aplicativo multithread, você deve ter muito cuidado ao usar vários threads para manipular o mesmo objeto. Por exemplo, usar o mesmo objeto CRecordset
em dois threads pode causar problemas ao recuperar dados; uma operação de fetch em um thread pode substituir os dados buscados no outro thread. Um uso mais comum das classes ODBC MFC em threads separados é para compartilhar um objeto CDatabase
aberto entre threads usando a mesma conexão ODBC, com um objeto CRecordset
separado em cada thread. Observe que você não deve passar um objeto CDatabase
não aberto para um objeto CRecordset
em outro thread.
Observação
Se você precisar ter vários threads manipulando o mesmo objeto, deverá implementar os mecanismos de sincronização apropriados, como seções críticas. Lembre-se de que determinadas operações, como Open
, não estão protegidas. Você deve ter 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 multithreading.
Confira também
ODBC (conectividade de banco de dados aberto)
Programação de Acesso a Dados (MFC/ATL)