2012-01-09 19 views
7

Quiero escribir una aplicación que debería poder conectarse a múltiples bases de datos (esto se configurará mediante parámetros al inicio). La aplicación tendrá diferentes consultas para cada motor de base de datos, esto no es un problema.¿Cuáles son las alternativas para una biblioteca de múltiples bases de datos para C/C++?

El problema es que quiero poder conectarme a diferentes motores de base de datos. Java tiene JDBC, Perl tiene DBI. ¿Qué tiene C++?

Además, no quiero utilizar controladores de bases de datos con licencias demasiado estrictas (comerciales). GPL podría ser, pero me gustaría evitar eso.

+0

Se puede cerrar debido a la "mejor" palabra clave. Considera convertirlo en una wiki de la comunidad. –

+0

Gracias por el comentario, he cambiado la pregunta. –

+0

SOCI http://soci.sourceforge.net/ - fin del debate. –

Respuesta

1

Prácticamente todos los motores de bases de datos existentes proporcionan una interfaz ODBC. Creo que JDBC es en realidad un clon de ODBC.

Lo que se quiere, entonces, es un C++ envoltorio de la API de ODBC, que implementa RAII para asegurarse de que los recursos de base de datos se liberan en caso de excepción, etc. Por ejemplo: http://simpledb.sourceforge.net/

0

Existen las conexiones OLE más antiguas. Al usar OLE, puede conectarse a una base de datos Flat File, Oracle, SQL o MySql siempre que tenga instalados los controladores correctos.

0

ODBC es más compatible y la mayoría de bajo nivel. OLE DB es de mayor nivel y es más fácil trabajar con él, de modo que si encuentra el proveedor OLE DB para todos sus posibles sistemas de bases de datos, es el camino a seguir. De lo contrario, ODBC es su opción ya que prácticamente todos los sistemas DB lo admiten.

EDITAR: Ver este enlace: http://blogs.msdn.com/b/sqlnativeclient/archive/2011/08/29/microsoft-is-aligning-with-odbc-for-native-relational-data-access.aspx Esto hace que ODBC sea la única opción adecuada. :)

Cuestiones relacionadas