2012-01-09 14 views
7

Voglio scrivere un'applicazione che dovrebbe essere in grado di connettersi a più database (questo verrà configurato dai parametri all'avvio). L'applicazione avrà query diverse per ogni motore di database, questo non è un problema.Quali sono le alternative per una libreria multidatabase per C/C++?

Il problema è che voglio essere in grado di connettersi a diversi motori di database. Java ha JDBC, Perl ha DBI. Cosa ha C++?

Inoltre, non desidero utilizzare driver di database con licenze troppo rigide (commerciali). GPL potrebbe essere - ma vorrei evitarlo.

+0

Potrebbe essere chiuso a causa della parola chiave "migliore". Considera di renderlo un wiki della comunità. –

+0

Grazie per il commento, ho cambiato la domanda. –

+0

SOCI http://soci.sourceforge.net/ - fine della discussione. –

risposta

1

Praticamente ogni motore di database esistente fornisce un'interfaccia ODBC. Penso che JDBC sia in realtà un clone di ODBC.

Quello che vuoi, poi, è un C++ wrapper per le API ODBC, che implementa RAII fare in modo che le risorse del database vengono rilasciati in caso di eccezioni, ecc, ad esempio: http://simpledb.sourceforge.net/

0

Sono presenti le connessioni OLE precedenti. Utilizzando OLE, è possibile connettersi a un database Flat File, Oracle, SQL o MySql purché siano installati i driver corretti.

0

ODBC è più compatibile e più basso livello. OLE DB è di livello superiore e più semplice da utilizzare, quindi se si trova il provider OLE DB per tutti i possibili sistemi DB, è la strada da percorrere. In caso contrario, ODBC è la tua opzione in quanto praticamente tutti i sistemi DB lo supportano.

MODIFICA: Visualizza questo collegamento: http://blogs.msdn.com/b/sqlnativeclient/archive/2011/08/29/microsoft-is-aligning-with-odbc-for-native-relational-data-access.aspx Ciò rende ODBC l'unica scelta appropriata. :)

Problemi correlati