2008-08-22 5 views
8

Ich werde C/C++ verwenden und möchte wissen, wie man am besten mit einem MySQL-Server kommuniziert. Sollte ich die Bibliothek verwenden, die mit der Serverinstallation geliefert wird? Sind das irgendwelche guten Bibliotheken, die ich als eine andere betrachten sollte?Wie kommuniziert man am besten mit einem MySQL-Server?

+2

Könnten Sie den Titel ändern? Ich dachte, es ging um MS SQL Server. thx –

+2

Schreien Sie es an. ;) –

Antwort

0

, die ein bisschen hängt davon ab, was Sie tun möchten.

Zuerst Bibliotheken auschecken, die Verbindungen zu mehr als auf DBMS-Plattform bieten. Zum Beispiel macht es Qt sehr einfach, sich mit MySQL, MS SQL Server und einigen anderen zu verbinden und den Datenbanktreiber (Verbindungstyp) zur Laufzeit zu ändern - mit nur ein paar Zeilen Code.

MySQL-spezifische Bibliotheken sind in Ordnung, aber bedenken Sie, dass Sie sich auf eine DB-Implementierung beschränken - wenn Sie jemals in der Zukunft ändern müssen, wird es eine Menge Arbeit sein - selbst wenn Sie Ihren Code entwerfen so dass das DB-spezifische Zeug hinter einer Fassade ist. Warum nicht eine Bibliothek verwenden, die Konnektivität zu mehreren Plattformen bietet, und sich die Mühe ersparen?

0

OTL ist eine solide Cross-DBMS-Lösung für C++, die mein Projekt seit Jahren verwendet. Wir verwenden es, um mit SQL Server (über ODBC) und Oracle (über OCI) zu kommunizieren. Es ist relativ einfach zu fahren und enthält eine große Anzahl von Beispielen für alle unterstützten Datenbanken.

0

Es ist nichts falsch mit MySQL eigenen Client-Bibliotheken. Wenn Sie bereit sind, sich mit reduzierte Funktionalität begnügen, können Sie sich einige zusätzliche Portabilität mit ODBC, UDBC, apr_dbd oder eine andere Datenbank-Abstraktionsbibliothek (wie die OTL bereits angeboten) kaufen.

Dies wird den Wechsel zu einem Back-End erleichtern, aber, wie bereits erwähnt, auf Kosten von weniger Funktionalität im Vergleich zu dem des nativen Clients. Da sich die DB-Anbieter unterscheiden, können die Abstraktions-Bibliotheken nur die Funktionen anbieten, die allen (oder den meisten) Back-Ends gemeinsam sind. Ob Sie lieber für eine bestimmte DB optimieren oder lieber Backends wechseln möchten, bleibt Ihnen (und vielleicht auch Ihrem Vorgesetzten) überlassen.