C++ Datenbank-Bibliotheken (Minimum: MS SQL Server)



  • Hallo,
    ich bin mir nicht sicher ob meine Frage besser in den C++ oder Datenbankbereich gehört. Wir sind auf einer Suche nach einer Datenbank-Bibliothek für C++, die in einem kommerziellen Projekt verwendet werden kann und folgende Bedingungen erfüllt (Am liebsten wären mir Empfehlungen aus dem professionellen Bereich):

    Harte Kriterien:

    1. Aktualität - Es sollte kein totes Projekt sein
    2. Verbreitung und Unterstützerbasis - Idealerweise steht nicht nur eine Person hinter dem Projekt und eine hohe Basis (erhöht die Wahrscheinlichkeit einer langfristigen Existenz)
    3. Dokumentation - Zumindest eine zufriedenstellende Beschreibung; im Idealfall existieren auch Bücher, Lernvideos...
    4. Lizenz - Die Lizenz muss sich für den Einsatz in kommerziellen, Closed-Source-Projekten eignen
    5. Getestet - Die Bibliothek sollte als Fehlerquelle möglichst weitgehend ausgeschlossen werden können
    6. Vollständigkeit - Sie sollte unsere Mindestanforderungen vollständig erfüllen, ohne das man selbst händisch Treiber etc. anbinden muss: Unterstützung des MS-SQL-Servers, Basis-SQL (Select, Insert, Update, Delete), Aufruf von Stored Proceduren, Verwendung von Views und Funktionen, Unterstützung aller Basisdatentypen einschließlich Blob, Plattformunabhängigkeit (mindestens Windows und Linux)

    Weitere weiche Kriterien:
    7. "Schönheit" - Moderne C++ Schnittstelle die sich möglichst in C++11/14/17 einfügt; Verständlichkeit
    8. Frei oder kostengünstig (sie darf auch kommerziell sein, sollte aber möglichst nicht pro Entwickler im 4-Stelligen Bereich kosten)
    9. Unterstützung weiterer Datenbanken (z.B. PostgreSQL) mit möglichst gleicher/ähnlicher Syntax wäre zwar schön, aber nicht zwingend
    10. ORM-Funktionalität (dann aber möglichst auch die Umgeung über direktes SQL erlauben)
    11. Direkter Support (nicht nur über ein Bugtracker)



  • Qt



  • Ich glaube nicht, dass Qt nativ auf den Sql Server zugreifen kann.
    Ansonsten würde ich das nicht als "schön" bezeichnen, aber durchaus brauchbar.



  • @mechanics sagte in C++ Datenbank-Bibliotheken (Minimum: MS SQL Server):

    Ich glaube nicht, dass Qt nativ auf den Sql Server zugreifen kann.

    Der Sql Server sollte per ODBC benutzbar sein. Für Microsoft Produkte ist das doch nativ 😉



  • Ja, aber dafür muss der ODBC Treiber installiert sein. Und das ist evtl. nicht auf allen Clients der Fall. Ich weiß nicht, obs die Anforderungen von asc erfüllt, wollts nur erwähnen.



  • ODBC? Don't ride a dead horse. 😀

    Es gibt noch SQLAPI++.



  • @th69 sagte in C++ Datenbank-Bibliotheken (Minimum: MS SQL Server):

    ODBC? Don't ride a dead horse. 😀

    Da wird aber dasselbe tote Pferd geritten.



  • Du meinst bei SQLAPI++? Da gibt es aber auch Zugang mittels Microsoft OLE DB Driver for SQL Server.

    Und generell bei einer Datenbank-Library ODBC als Fallback für andere Datenbanken anzubieten, ist ja legitim.



  • @th69 sagte in C++ Datenbank-Bibliotheken (Minimum: MS SQL Server):

    Du meinst bei SQLAPI++? Da gibt es aber auch Zugang mittels Microsoft OLE DB Driver for SQL Server.

    Naja, OLE DB wird erst deprecated, dann undeprecated - das ist irgendwie nicht lebendiger als ODBC.



  • Ich danke für die bisherigen Antworten, wir haben selbst noch ein paar Bibliotheken in die erste Auswahl genommen, wie ODB, POCO, nanodb...

    QT ist nur dann für uns unproblematisch, wenn wir mit der LGPL-Lizenz von QT in einem kommerziellen Projekt auskommen (dynamisches Linken...). Ansonsten ist QT inzwischen zu teuer geworden. Die Jährlichen Kosten liegen bei grob 4.500€/Jahr und Entwickler, wir zwahlen aktuell knapp die Hälfte für IDE, Komponenten... Und unsere Firma ist noch zu klein um einfach mal die Mehrkosten (obwohl nicht im Verhältnis zu den Entwicklerkosten) locker oben auf zu packen. An sich sind wir aber nicht gegen kommerzielle Projekte, doch sollten die Kosten die wir in Zukunft für Lizenzen brauchen nicht viel über dem aktuellen Stand liegen.

    Für uns ist die unterstützung für den SQL Server wichtig, weitere sind "nice to have", aber durch die MS-Politik wäre es schön wenn die Abstaktion zumindest so weit geht, das man leicht zwischen den verschiedenen DB-Techniken (odbc, ole db...) wechseln kann. Nicht das man in Absehbarer Zeit ein Problem bekommt. Ich liebäugel aktuell am ehesten mit ODB, das, sofern die Lizenz bezahlbar ist, recht aufgeräumt und einigermaßen aktiv daher kommt.