ADO auf Access Datenbank mittels MS JET oder ODBC ??? Was ist besser ?



  • hi,

    ich habe eine kleine anwendung geschrieben die ich weitergeben möchte.
    um die software zu verwenden sollte keine spezielle zusatzsoftware wie office oder datenbankserver oder sonstiges erforderlich sein. also hab ich mich kurz darauf entschlossen eine mdb db anzulegen und auf diese über ado zuzugreifen da man somit nicht die bde komponenten installieren muss.

    welcher zugriff ist denn nun eigentlich schneller bzw. besser geeignet ?
    der zugriff über odbc oder über die jet engine ?

    ich kenn mich leider mit beiden nicht sonderlich aus und wäre über infos von euch sehr dankbar!

    gruß
    binary



  • Es gibt sich nicht viel. Schaut man sich das Modell für den Zugriff auf mdb an wird man außerdem sehen, daß die ODBC-API intern auf Jet basiert, d.h. das ist alles irgendwo identisch.

    Nachteil bei ODBC ist immer, daß man die Datenquelle am System anmelden muß, bei Jet kann man direkt auf den Dateien arbeiten, sogar einfach im lokalen Verzeichnis, das ist oftmals einfacher zu handhaben.

    Bei einer einfachen Anwendung würde ich eher zu Jet greifen.



  • aha, das ist ja interessant.

    2 fragen hab ich allerdings noch:
    -----------------------------------

    1.) was mich natürlich auch sehr wichtig ist sind welche risiken mit einem jet zugriff verbunden sind. ich hatte beispielweise voher eine anwendung geschrieben die mittels ado über odbc auf eine mdb datenbank zugegriffen hat. nun gut, damit der odbc treiber auch auf denn anwender pcs installiert ist hab ich diesen mittels install shield bei der installation eintragen lassen. allerdings gab es auf einigen älteren systemen mit fehlenden service packs probleme. dieses problem konnte man nur mittels eines microsoft updates mdac 2.7 installation beheben. dannach ging es wieder. da ich recht neu in der c++ welt bin und extrem unter zeitdruck stehe muss ich versuchen möglichst schnell eine anwendung zu schreiben die auch auf allen systemen läuft.

    2.) was für andere möglichkeiten hab ich denn für denn datenbankzugriff (datenbanken und zugriffsart) ?

    hab mir mal die datenbankoberfläche vom builder angesehen aber ihrgendwie versteh ich das nicht ganz. kann das wirklich sein das jede tabelle eine eigene datei ist ??? das problem ist das meine gesamte datenbank miteinander verknüpft ist (sprich zb. personal.pid (1:n) belegung.pid).

    mit sql kenne ich mich soweit eigentlich aus nur weis ich eben nicht welche datenbank ich über welchen verbindungstyp nun am besten nehmen soll.
    eine serverlösung ist für dieses projekt nicht vorgesehen, sprich eine kleine desktopanwendung mit einer relativ kleinen datenbank im hintergrund. ebenso soll man keine zusätzliche lizens erwerben müssen ....

    für tipps bin ich euch sehr sehr dankbar!!!!!!!!!!!!!!!!!!!!!



  • Du solltest sowieso immer ein MDAC-Redistributable in der letzten Version installieren!

    Einige ältere Versionen von Jet (die im MDAC 2.5 drin sind) fressen z.B. Speicher, wenn man Binär-Objekte in die Datenbank schreibt.

    Also sollte Dein Installer ein (sicher funktionierendes) MDAC-Paket mit aufspielen, egal ob Du Jet, OLE DB oder ODBC verwendest... denn z.B. Office bringt auch MDAC-Treiber mit, das können 1001 Version auf dem Zielsystem sein. Du wirst um eine eigene Installation nicht rumkommen.



  • erstmal danke für denn tip!
    also egal ob ich denn zugriff über die jet oder odbc nun mache,
    ich sollte voher immer die neuste mdac version (aktuell 2.8) aufspielen und erst dann die eigentliche software installieren ? brauch ich eigentlich noch andere updates die ich voher installieren sollte ?

    mit welcher installationssoftware kann ich denn sowas gleich vor der eigentlichen installation installieren ?

    sorry für die erneut so vielen fragen 😉



  • Erst MDAC, dann Deine Software. InstallShield in der "großen" Version kann das.

    Andere Updates sind in Deinem Fall nicht notwendig.



  • große version heißt dann developer studio für mehrere tausend euro, oder ??? 😞


Anmelden zum Antworten