Programación del acceso a datos (MFC/ATL)
Con los años, Visual C++ ha ido proporcionando varias maneras de trabajar con bases de datos. En 2011, Microsoft anunció que se adhería a la conectividad abierta de bases de datos (ODBC) como la tecnología recomendada para tener acceso a los productos de SQL Server desde código nativo. ODBC es un estándar del sector, de modo que, al usarlo, obtendrá la mejor portabilidad de código posible en varias plataformas y orígenes de datos. La mayoría de los productos de base de datos SQL y muchos productos que no son de SQL son compatibles con ODBC. Puede usar ODBC directamente mediante una llamada a las API de ODBC de bajo nivel, o bien usar las clases contenedoras de ODBC MFC o una biblioteca de contenedor de C++ de terceros.
OLE DB es una API de bajo nivel y de alto rendimiento basada en la especificación COM que solo se admite en Windows. Use OLE DB si el programa tiene acceso a servidores vinculados. ATL proporciona plantillas de OLE DB que hacen que sea más fácil crear consumidores y proveedores OLE DB personalizados. El proveedor más reciente de Microsoft SQL Server se puede encontrar en la documentación del controlador OLE DB para SQL Server.
Migración de aplicaciones de datos
Si la aplicación heredada usa OLE DB o la interfaz de ADO de nivel superior para conectarse a SQL Server, debe considerar la posibilidad de migrar al controlador OLE DB para SQL Server más reciente con el fin de aprovechar las ventajas de las características de SQL Server más recientes. Otra alternativa, si no necesita portabilidad multiplataforma o las características de SQL Server más recientes, es usar el Proveedor OLE DB de Microsoft para ODBC (MSDASQL). MSDASQL permite que las aplicaciones basadas en OLE DB y ADO (que usa OLEDB internamente) tengan acceso a los orígenes de datos a través de un controlador ODBC. Al igual que cualquier capa de traducción, MSDASQL puede tener impacto en el rendimiento de la base de datos. Conviene hacer pruebas para saber si el impacto va a ser significativo en la aplicación. MSDASQL se suministra con el sistema operativo Windows, y Windows Server 2008 y Windows Vista SP1 son las primeras versiones de Windows que incluyeron una versión de 64 bits de esta tecnología.
Si la aplicación de C++ se conecta a SQL Server o a Azure SQL Database mediante ODBC, debe usar el controlador ODBC más reciente.
Si usa C++/CLI, puede seguir usando ADO.NET como siempre. Para más información, vea Acceso a datos mediante ADO.NET (C++/CLI) y Obtener acceso a los datos en Visual Studio.
- Aparte de las clases contenedoras ODBC, MFC también proporciona clases contenedoras DAO (objetos de acceso a datos) para conectarse a las bases de datos de Access. Sin embargo, DAO está obsoleto. Cualquier código basado en CDaoDatabase o CDaoRecordset debe actualizarse.
Para más información sobre la historia de las tecnologías de acceso a datos en Microsoft Windows, vea el artículo de la Wikipedia sobre Componentes de Microsoft Data Access.