Programmieren - alles kontrollieren 4.941 Themen, 20.708 Beiträge

Visual Basic, ADO Datenbankzugriff auf JET-Engine

anul / 1 Antworten / Baumansicht Nickles

Welche Funktion haben die Dateien mit der Endung *.mdw(Jet OLEDB:System database) und *.ldb bei einer Access Datenbank?

Eine Datenbank liegt in einen für einige Nutzer schreibgeschützten Pfad. Der Verbindungsaufbau
bricht immer ab, weil die Anwendung/Jet-Engine offensichtlich die *.ldb Datei nicht anlegen kann.
Kann man das umgehen? Datenbank sollte in schreibgeschützen Bereich bleiben.


 


 

bei Antwort benachrichtigen
T-Rex anul „Visual Basic, ADO Datenbankzugriff auf JET-Engine“
Optionen

Hi,

die mdw-Datei ist die Arbeitsgruppendatei.
Darin werden die User und Gruppen gespeichert, die der Entwickler für seine DB-Anwendung vorgesehen hat.

Die ldw-Datei ist so eine Art Protokolldatei. Darin wird gespeichert, wer die mdb geöffnet hat und an welchem Rechner diese Person sitzt.
Die Jet-Engine versucht diese Datei immer zu erstellen, und zwar im gleichen Verzeichnis wie die DB. Ist das Verzeichnis schreibgeschützt, hat die Jet-Engine natürlich verloren.

Nun zu Deinem Schreibschutzproblem:
Im Connection-String kannst Du angeben, wie die Datei geöffnet werden soll. Fügst Du "Mode=Read|Share Deny None;" in den String ein, wird die Datenbank im Read-Only-Mode geöffnet.
Liest Du die Daten aber per Hand aus und zeigst diese an (also benutzt nicht dieses völlig fehlerbehaftete ADODC), ist es unerheblich, ob Du die Datenbank im Read-Only-Mode öffnest.

Wenn Du alle Daten per SQL ("SELECT bla FROM blub" und Recordset.Open) aus der DB holst, wird nichts reingeschrieben, solange Du kein INSERT oder UPDATE benutzt.
Das ist zwar ein höherer Programmieraufwand, ist aber sicherer und flexibler.

Hier noch ein paar Tutorials, die sich mit ADO ohne gebundene Controls befassen:
Der große ADO-Kurs
ADO, DB-Programmierung
Datenbanken mit ADO-Ext

Ich hoffe, das reciht an Infos.

 GrüßeT-Rex 
bei Antwort benachrichtigen