Re: ADO-Zugriff auf Access-DB liefert Fehlermedlung. Aber warum?!?



Hallo Steven,

> > Ein fehlender oder fehlerhaft installierter Provider (in Deinem Fall
> > offenbar die Jet-Engine) wird auch mit C# nicht weniger fehlerhaft sein.

> Naja, ich hab halt gehofft, dass das Framework komplett installiert solche
> Fehler nicht auswirft.

Es wäre schlimm, wenn das Framework bei einem fehlerhaft installierten oder
gar nicht vorhandenen DB-Provider keinen Fehler auslösen würde.

> Hier muss man je nach Bedarf alles nachinstallieren
> was das Programm braucht.

Auch wenn Du mit C# arbeitest muss MDAC und die Jet-Engine fehlerfrei
installiert sein, wenn Du auf eine Access.mdb zugreifen willst.


> Und wenn ich den HickHack bei mir oder bei dem
> einen Rechner sehe, dann vergeht mir die Lust.

Hmm, wenn das so schnell geht, solltest Du lieber nicht programmieren.
Solltest Du es doch weiterhin tun wollen, solltest Du damit rechnen, dass
künftig weitaus kniffligere Probleme auch auf Dich zukommen werden.
Programmieren ist halt doch ein bisschen mehr als nur einfach ein paar
Controls auf einer Form zusammen zu klicken.


> Ok ich bin nicht der erfahrenste Programmierer, und das ist noch
> geschmeichelt vielleicht,

Die Erfahrung wächst mit jedem Programm und mit jedem darin gesuchten und
gefundenen Fehler.


> aber die Fehlermeldung ist doch eindeutig
> bescheiden die kommt. Ich meine die Connection ist noch nicht mal geöffnet
> worden. Aber egal...siehe unten! ;)

Wie soll eine Connection geöffnet werden, wenn der dafür notwendige
DB-Provider, also das Programm, welches eine solche Verbindung herstellt
nicht oder fehlerhaft installiert ist?


> > Natürlich hilf die Fehlermeldung "Provider cannot be found. It may not
be
> > properly installed" weiter. Sie ist doch sehr aussagekräftig. Da auch
> > offenbar keine Instanz eines Connectionobjektes erstellt werden konnte,
wird
> > die Aussagekraft dieser Fehlermeldung auch erhärtet.
> Naja und was hilfts mir?!? :) Nein war nur spaß. Also wir haben jetzt den
> Rechner neu installiert.

Wirklich "neu" installiert?
Also wirklich erst Platte mit Format C: geputzt und danach alles neu
installiert?
Oder einfach über die alte fehlerbehaftete Installation drübergebügelt?


> MDAC drauf,

Welches MDAC?

Wurde vorher Win2k mit allen SPs, also inkl. Win2kSP4 sauber installiert?


> Jet Engine drauf Win2k mit allen
> Updates.

s.oben wurde vorher Win2k einschl. Win2kSp4 sauber installiert?

Welche Updates zur Jet-Engine?
Jet40Sp8 ist die akt. Version und wird mit den entsprechenden
systemabhängigen *.exe komplett installiert.


> Office2000 mit Access.

Auch hierzu das akt. SP?

Für den Ablauf Deines VB6-Programms ist weder Office noch Access auf dem
Rechner erforderlich. Für die DB-Zugriffe sind ausschliesslich ADO
(installiert durch MDAC_Typ.exe) und die Jet-Engine (installiert durch das
zum System passende Jet40SP8) zuständig.


> So ein rundum Sorglos-Paket. Aber auch hier
> kommt immernoch der selbe Fehler. Also beim Anlegen des Connectionobejktes
> mekkert der. So und jetzt kommts:
> Ich hab mir gedacht "Arsch lecken" (tschuldigung) und hab die
Funktionsweise
> mit deiner VB.Classic DB-Zugriffs-Anwendung getestet.

Mit welcher "DB-Zugriffs-Anwendung"?
Auf meiner Internetsite gibt es mehrere davon.

> Und was ist?! Es klappt
> auch nicht. Diese Fehlermedlung erscheint:
> Microsoft OLE DB Service Components
> Fehler: -2147221164 (0x80040154)
> Klasse nicht registriert

Was auch nichts anderes sagt, als dass eine DB-Zugriffskomponente (ADO/JRO
und/oder Jet-Engine) fehlerhaft oder gar nicht vorhanden ist.

Bei welchem Programm an welcher Stelle wird dieser Fehler ausgelöst?


> > Es geht auch nicht primär um eine einzige Fehlermeldung, sondern eher
darum,
> > ein Programm so zu konzipieren, dass jeder möglicherweise auftretende
Fehler
> > erkannt wird und der Programmcode entsprechend sinnvoll darauf reagiert.
Nur
> > wenn es in Deinem Programm eine lückenlose Fehlererkennung und für jeden
> > erkannten Fehler eine Programmroutine gibt, die auf einen solchen Fehler
> > entsprechend sinnvoll reagiert, wird Deine Anwendung stabil und ohne
> > unerklärliche Abstürze laufen.
> Ja das mit den Fehlerableitungen ist schon richtig. In meiner
Scriptsprache
> die ich hauptsächlich auf der Arbeit benutze ist das soweit auch kein
> Problem. Da fange ich sogar Fehler der Fehlerableitung ab! :-D

Wer oder was ist eine "Fehlerableitung"?
Mit dem Abfangen, also Erkennen von Fehlern ist es nicht getan,
anschliessend muss eine entsprechende Programmroutine dafür sorgen, dass auf
den erkannten Fehler eine entsprechend sinnvolle Reaktion erfolgt. Das kann
z.B. eine Wiederholung eines DB-Zugriffs sein, kann je nach Fehler auch ganz
andere Aktivitäten erfordern oder im schlimmsten Fall, wenn der Fehler per
Programmcode nicht behoben werden kann eine Meldung an den Benutzer sein,
nach der dieser dann selbst entscheiden kann, was zu tun ist.


> Aber wenn du
> dich in der Sprache noch nicht wirklich richtig auskennst kommt dann
meistens
> das raus. Daher mag ich auch keinen meinen Quellcode zeigen! ;)

Ohne Quellcode kann ich natürlich nicht wirklich erkennen, ob und wo ein
evtl. Fehler ist und wie er zu beheben wäre.

>
> Wie gesagt, ich kann dir immer nur danken, dass du mir so lange schon hier
> Hilfst und Tips gibst. Ich kann sie gebrauchen. ;-) Ich glaube zwar jetzt
> nicht das die oben genannte Fehlermeldung dich auf eine Idee bringt,

Doch, bringt mich schon, deshalb meine Nachfrage, wie genau diese
"Neuinstallation" tatsächlich abgelaufen ist. Ich vermute, dass eben nicht
wirklich "NEU" installiert, sondern nur "drüber installiert" worden ist.


Gruß aus St.Georgen
Peter Götz
www.gssg.de (mit VB-Tips u. Beispielprogrammen)

.



Relevant Pages

  • Re: ADO-Zugriff auf Access-DB liefert Fehlermedlung. Aber warum?!?
    ... Sowohl MDAC als auch die Jet-Engine sind Programme, ... >> gefundenen Fehler. ... >> DB-Provider, also das Programm, welches eine solche Verbindung herstellt ... Irgendwas ist bei deren Installation fehlgelaufen oder die Installation ...
    (microsoft.public.de.vb.datenbank)
  • Re: Fehlermeldung: Microsoft Office Access-Information zur Datensatzsperrung ??
    ... Dim WS As DAO.Workspace ... Du hast doch geschrieben dass Dein Programm ein VB6-Programm ist. ... Messagebox eine Fehlermeldung mit Err.Number und Err.Description ... Fehler, erweitern Err.source um den eigenen Modul- und Prozedurnamen ...
    (microsoft.public.de.vb.datenbank)
  • Re: ADO-Zugriff auf Access-DB liefert Fehlermedlung. Aber warum?!?
    ... > gefundenen Fehler. ... > DB-Provider, also das Programm, welches eine solche Verbindung herstellt ... > Welche Updates zur Jet-Engine? ... man die Fehlermedlung kommt die Meldung das die DB nicht angelegt werden ...
    (microsoft.public.de.vb.datenbank)
  • Re: Authentifizierungsfehler
    ... dass folgende Fehlermeldung ... > ADO-Verbindung auf, sonst passiert eigentlich nix, wo ein Fehler ... > End With ... > Ich verteile das Programm per MSI-Paket. ...
    (microsoft.public.de.vb.datenbank)
  • Re: ADO-Zugriff auf Access-DB liefert Fehlermedlung. Aber warum?!?
    ... > Ja das ist mir schon beim richtigen Programm aufgefallen. ... > oder bei der Fehlermeldung ist das aber doch egal, ... Provider can not be found. ... nicht, wenn es sich um datenbankspezifische Fehler handelt, die nicht von VB ...
    (microsoft.public.de.vb.datenbank)