Access Datenbank - Mit ODBC (zu langsam ?)?



  • Hallo!
    Ich wollte mich jetzt mal an die Datenbankprogrammierung ranmachen.
    Da dies anscheinend in C++\CLI nicht möglich ist, also in MFC.
    Ich habe eine Access Datenbank.
    Auf diese möchte ich jetzt zugreifen.
    Ich habe bereits gehört, dass es verschiedene Möglichkeiten gibt.
    Was ist eurer Meinung die beste Lösung? Man sollte keine weiteren Programme installieren müssen, damit der Zugriff funktioniert.

    Über ODBC habe ich mitgekriegt, dass der Zugriff langsam sein soll.
    Stimmt das?

    Kennt ihr weitere Zugriffsmöglichkeiten.
    Wenn möglich, könnt ihr auch Tutorials dazu schreiben?

    Danke! 😉



  • ODBC ist langsam weil es universell ist. Dh. es bietet nicht die features und es ist eine Standardschnittstelle.

    Alternativ:
    ADO



  • Äh. Was bedeutet langsam? ODBC ist lange nicht so langsam dass die Datenbank die die Anfragen ja schliesslich ausführen muss nicht noch langsamer wäre.

    Ansonsten guck dir mal ADO an. Man könnte zwar auch behaupten dass ADO "langsam" ist, aber für meine Zwecke hat's immer noch gereicht, und die Programme die ich damit geschrieben habe werden eigentlich alle von der Datenbank limitiert und nicht von ADO.
    BTW: ADO ist COM und sollte daher auch mit C++/CLI verwendbar sein. Und dann gibts ja noch ADO .NET (was aber eine ganz andere API hat als ADO)...

    http://www.codersource.net/mfc_ado_select.html
    http://www.codeguru.com/cpp/data/mfc_database/ado/article.php/c6729/

    Was die Wahl der Datenbank angeht: wenn du willst dass es "überall" läuft ohne dass man was installieren muss bleibt wohl nur die Jet Engine (Access), oder aber noch kompliziertere und noch weniger mächtige Dinge ala DBASE/FoxPro etc.

    ----

    Eine ganz andere Möglichkeit wäre etwas wie SQLite zu verwenden: http://www.sqlite.org/


  • Mod

    Wenn es wirklich um den kleinsten Overhead geht ist OLE DB unschlagbar. Wo ADO alles in ein Variant zwängt und dadurch natürlich permanent Heap Allokationen auslöst ist OLE DB mit einem statischen Record-Buffer natürlich um längen überlegen.

    Aber dafür ist es um Längen komplizierter zu bedienen...
    ATL macht es relativ simpel, aber es ist und bleibt nicht einfach.
    Die Nähe zu ADO ist unverkenbar, denn ADO ist nichts anderes als ein simples Interface was auf OLE DB aufsetzt.


Anmelden zum Antworten