Je suis en train d'écrire une application qui a besoin d'interfacer avec une base de données MySQL. Devrais-je utiliser libmysql ou le connecteur ODBC ? Y a-t-il des avantages / inconvénients à part le fait qu'utiliser ODBC me permettra de changer de base de données à l'avenir sans trop de changement de code ?
Réponses
Trop de publicités?À mon avis, c'est une question de préférence personnelle.
Lors de l'utilisation de libmysql, une bonne approche serait d'écrire d'abord un ensemble de fonctions d'enveloppe génériques pour libmysqlclient (couche A), au-dessus un ensemble de fonctions qui implémentent la fonctionnalité de base de données que vous allez utiliser dans votre programme (couche B), et au-dessus de cela votre programme réel (couche C).
Passer de libmysql à ODBC ne nécessite que des modifications mineures dans la couche B sans modifier l'API de la couche B. Par conséquent, si vous prévoyez d'utiliser votre programme avec MySQL uniquement, je vous suggère de rester avec libmysql jusqu'à ce que quelqu'un vous fournisse un correctif pour ODBC.
Sur le plan technique, vous devez faire un compromis entre la connectivité à la base de données et la portabilité. L'utilisation de libmysql permet à votre code de se compiler sans modifications sur une variété de plateformes, telles que Unix, MacOS et Windows. Les bibliothèques ODBC sont généralement écrites soit pour Windows, soit pour Unix/MacOS.
Je change ma base de données tout le temps, et j'utilise le connecteur C, qui fonctionne parfaitement et sans trop de changements de code. Cela a été le meilleur choix pour moi et, peut-être, pour vous (bien sûr, uniquement imo).
Je ne peux pas croire que les changements de code seraient très différents entre les deux interfaces, si vous allez rester avec MySQL.
MODIFIER: J'ai choisi le connecteur C à l'origine car il était intuitif et naturel pour moi; et parce que je n'étais pas trop sûr qu'il y avait un ODBC fonctionnel et fiable pour Linux : mon code doit s'exécuter sous Windows et Linux. Maintenant, je vois qu'une telle chose existe en effet. Cela rend l'ODBC plus attrayant : peut-être aurais-je choisi différemment si j'avais su à ce sujet.