Frage bzgl. Err.Number bei ADO

27/08/2009 - 15:55 von Susann Markward | Report spam
Hallo,

ich überprüfe eine Datenbank u.a. darauf, ob die DB die angesprochene
Tabelle, oder das angesprochene Feld enthàlt. Ebenfalls wird überprüft,
ob die DB ein Kennwort besitzt.

Besitzt die DB bspw. nicht die Tabelle, bekomme ich die Fehlermeldung
(Bsp. 2). Versuche ich eine Passwort-geschützt DB ohne Passwort zu
öffnen, bekomme ich die Fehlermeldung (Bsp. 1).

Bsp. 1: DB wird nicht mit einem Kennwort geöffnet.
,--
|Fehler: -2147217843
|Prozedur: FieldTest(MyDB.mdb)
|Meldung: Kein zulàssiges Kennwort.
`--

Bsp. 2: DB verfügt nicht über die angesprochene Tabelle.
,
|Fehler: -2147217865
|Prozedur: FieldTest(MyDB.mdb)
|Meldung: Das Microsoft Jet-Datenbankmodul findet die Eingangstabelle
|oder Abfrage 'Version' nicht. Stellen Sie sicher, dass sie existiert
|und der Name richtig eingegeben wurde.
`

Sind die Fehlernummern (Err.Number) so korrekt? Bisher kenne ich nur
Fehlermeldungen aus dem Bereich 1 bis 512 und > 512. Mir sehen die
Fehlernummern irgendwie so nach Speicherüberlauf aus.

Kann ich also davon ausgehen, dass wenn ich bspw. die Fehlernummer
-2147217843 bekomme, _immer_ und _in jedem Fall_ versucht wurde, eine
Datenbank ohne zulàssiges Kennwort zu öffnen?

MfG
Susann
 

Lesen sie die antworten

#1 Peter Götz
27/08/2009 - 18:42 | Warnen spam
Hallo Susann,

ich überprüfe eine Datenbank u.a. darauf,



Welche Datenbank?
SQL-Server, Oracle, Access.mdb usw.

Welcher Provider?

ob die DB die angesprochene
Tabelle, oder das angesprochene Feld enthàlt. Ebenfalls
wird überprüft, ob die DB ein Kennwort besitzt.

Besitzt die DB bspw. nicht die Tabelle, bekomme ich die
Fehlermeldung (Bsp. 2). Versuche ich eine Passwort-geschützt
DB ohne Passwort zu öffnen, bekomme ich die Fehlermeldung
(Bsp. 1).

Bsp. 1: DB wird nicht mit einem Kennwort geöffnet.
,--
|Fehler: -2147217843
|Prozedur: FieldTest(MyDB.mdb)
|Meldung: Kein zulàssiges Kennwort.
`--

Bsp. 2: DB verfügt nicht über die angesprochene Tabelle.
,
|Fehler: -2147217865
|Prozedur: FieldTest(MyDB.mdb)
|Meldung: Das Microsoft Jet-Datenbankmodul findet die Eingangstabelle
|oder Abfrage 'Version' nicht. Stellen Sie sicher, dass sie existiert
|und der Name richtig eingegeben wurde.
`



Wg. MyDB.mdb rate ich mal, dass Du mit einer Access.mdb arbeitest.
Die Fehlernummern

-2147217865 &h80040E37

-2147217843 &h80040E4D

sind Fehlernummern des "Microsoft OLE DB Provider for ODBC Drivers".
Findest Du in der MSDN-Library z.B. mit Suchbegriff 80040E4D.

Sind die Fehlernummern (Err.Number) so korrekt? Bisher kenne ich nur
Fehlermeldungen aus dem Bereich 1 bis 512 und > 512. Mir sehen die
Fehlernummern irgendwie so nach Speicherüberlauf aus.



Nein, das ist kein Speicherüberlauf.
Aber warum verwendest Du für eine Access.mdb ODBC und
nicht die Jet-Engine.


Kann ich also davon ausgehen, dass wenn ich bspw. die
Fehlernummer -2147217843 bekomme, _immer_ und _in
jedem Fall_ versucht wurde, eine Datenbank ohne zulàssiges
Kennwort zu öffnen?



Schau Dir mal im Beispiel

www.gssg.de -> Visual Basic -> VBclassic
-> Datenbank -> ADO DemoMU2002

die Public Function ConnectDialogJet() im Klassenmodul
clsGSADOData.cls an.
Darin wird erst mal versucht eine *.mdb ohne Passwort zu
öffnen. Gelingt dies nicht, wird ein Dialog zur Eingabe des
DB-Passwortes angezeigt und danach erneut versucht die
*.mdb mit diesem Passwort zu öffnen.

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

Ähnliche fragen