Je veux écrire une application qui devrait pouvoir se connecter à plusieurs bases de données (ceci sera configuré par des paramètres au démarrage). L'application aura différentes requêtes pour chaque moteur de base de données, ce n'est pas un problème. P>
Le problème est que je veux pouvoir vous connecter à différents moteurs de base de données. Java a JDBC, Perl a DBI. Qu'est-ce que c ++ a? P>
De plus, je ne veux pas utiliser de pilotes de base de données avec des licences trop strictes (commerciales). GPL pourrait être - mais j'aimerais éviter cela. P>
4 Réponses :
Il y a les connexions ole plus anciennes. En utilisant OLE, vous pouvez vous connecter à un fichier plat, Oracle, SQL ou MySQL de base de données à condition que les pilotes corrects soient installés. P>
Pratiquement chaque moteur de base de données existant fournit une interface ODBC. Je pense que JDBC est en fait un clone de ODBC. P>
Ce que vous voulez, alors, est une enveloppe C ++ pour l'API ODBC, qui implémente Raii pour s'assurer que les ressources de la base de données sont libérées en cas d'exception, etc. Par exemple: http://simpledb.sourceforge.net/ p>
ODBC est le plus compatible et le plus bas niveau. OLE DB est un niveau supérieur et plus facile à utiliser. Donc, si vous trouvez un fournisseur OLE DB pour tous vos systèmes de DB possibles, c'est la voie à suivre. Sinon ODBC est votre option car pratiquement tous les systèmes de DB le supportent. P>
EDIT: Voir ce lien: http://blogs.msdn.com/b/sqlnativeclient/archive/2011/08/29/microsoft-is-aligning-with-oDBC-for-native- Relationnel-Data-Access.aspx Cela rend ODBC le seul choix approprié. :) p>
Le système de cartographie relationnel de l'objet C ++ ODB strong> de la société http://codesynthesis.com/products/odb/ p>
Voici une entrée de blog où ils décrivent pourquoi ils ont choisi d'utiliser des API de Native C au lieu de ODBC pour se connecter aux bases de données. p>
http://codesynthesis.com/~boris/blog / 2011/12/09 / OCI-MINGW / P>
La vitesse était l'une des raisons. p>
Pourrait être fermé en raison du mot-clé "meilleur". Pensez à en faire un wiki communautaire.
Merci pour le commentaire, j'ai changé la question.
SOCI SOCI.SOURCEFORGE.net - Fin de discussion.