Bibliotecas de acceso a bases de datos para C ++
Pregunta
Fondo:
Tengo una aplicación escrita en C ++ nativo que usa la biblioteca de acceso a la base de datos wxODBC del wxWidgets toolkit que se está eliminado de todas las versiones futuras de wxWidgets. Necesito reemplazar esto con otro método de acceso a la base de datos que admita las suposiciones y restricciones descritas a continuación. No necesito que el reemplazo use API DBMS nativas u ODBC debajo del capó, pero debe cumplir con las restricciones descritas a continuación.
Suposiciones / restricciones
La biblioteca debe:
- Admite C ++ nativo (es decir, no administrado)
- Windows 2000 / XP / 2003 de 32 bits
- Visual Studio 2005
- Microsoft SQL Server 2000 y 2005
- Oracle 9 y 10
- Rendimiento en tiempo de ejecución mayor o igual que wxODBC
- API de programador único que admite múltiples DBMS (por ejemplo, no desea escribir un código diferente para usar diferentes DBMS)
Agradable pero opcional:
- sistemas operativos Windows de 64 bits
- sistemas operativos Linux de 32 bits y / o 64 bits
- Microsoft SQL Server 2008
- Oracle 11
- MySQL
- Cualquier DBMS adicional
- Visual Studio 2008
- Código abierto
- Rendimiento en tiempo de ejecución cercano o igual a la API DBMS nativa
Pregunta:
¿Qué buenas bibliotecas están disponibles, ya sean gratuitas, de código abierto o de pago, que admitan múltiples DBMS desde una única API, incluidos Oracle y Microsoft SQL Server, y se puedan usar desde C ++ nativo?
Describa cualquier experiencia pasada que haya tenido, buena o mala, con una biblioteca determinada y por qué hace su recomendación a favor o en contra de una biblioteca determinada, especialmente en lo que respecta a los supuestos y restricciones anteriores.
Vea también:
https://stackoverflow.com/questions/74141/good-orm-for-c -soluciones
Solución
Yo uso SQLAPI ++. Vale la pena echarle un vistazo.
Otros consejos
Puede usar SOCI http://soci.sourceforge.net o también Wt :: Dbo, http://www.webtoolkit.eu y mire el componente Wt :: Dbo.
Una biblioteca es http://otl.sourceforge.net/
Un empleador mío lo usó.
No puedo decirle cómo se compara su rendimiento con wxODBC, pero podría ajustarse a sus requisitos.
Puede verificar Debea - Acceso a la base de datos SQL y ORM para C ++. Tiene API para wxWidgets incorporada.
Qt también es una opción. Admite las conexiones a los servidores que desea y es bastante simple de usar.
http://doc.trolltech.com/4.4/sql -driver.html # soportado-bases de datos
Al usar Qt, no es necesario construir contra todos los Qt. Por ejemplo, puede usar la parte SQL y dejar la parte GUI completa afuera.
Como se ha editado recientemente con LGPL, también puede usarlo para una aplicación patentada.