Clases y subprocesos de ODBC

A partir de MFC 4.2, hay compatibilidad con multithreading para las clases ODBC de MFC. Sin embargo, tenga en cuenta que MFC no proporciona compatibilidad con multithreading para las clases DAO.

La compatibilidad con multithreading para las clases ODBC tiene algunas limitaciones. Dado que estas clases encapsulan la API ODBC, están restringidas a la compatibilidad con multithreading de los componentes en los que se compilan. Por ejemplo, muchos controladores ODBC no son seguros para subprocesos; por lo tanto, las clases ODBC de MFC no son seguras para subprocesos si las usa con uno de estos controladores. Debe comprobar si su controlador determinado es seguro para subprocesos.

Al crear una aplicación con multithreading, debe tener mucho cuidado con el uso de varios subprocesos para manipular el mismo objeto. Por ejemplo, el uso del mismo objeto CRecordset en dos subprocesos puede causar problemas al recuperar datos; una operación de captura en un subproceso podría sobrescribir los datos capturados en el otro subproceso. Un uso más común de las clases ODBC de MFC en subprocesos independientes es compartir un objeto CDatabase abierto entre subprocesos para usar la misma conexión ODBC, con un objeto CRecordset independiente en cada subproceso. Tenga en cuenta que no debe pasar un objeto CDatabase sin abrir a un objeto CRecordset en otro subproceso.

Nota:

Si debe hacer que varios subprocesos manipulen el mismo objeto, debe implementar los mecanismos de sincronización adecuados, como las secciones críticas. Tenga en cuenta que ciertas operaciones, como Open, no están protegidas. Debe asegurarse de que no se llamará a estas operaciones simultáneamente desde subprocesos independientes.

Para obtener más información sobre cómo crear aplicaciones multiproceso, consulte Temas de multithreading.

Consulte también

Conectividad abierta de bases de datos (ODBC)
Programación del acceso a datos (MFC/ATL)