PRB: Fehlermeldung "3050 konnte die Datei nicht gesperrt" die Verbindung mit einer Jet-Datenbank auf einem Novell Server

Wichtig: Dieser Artikel wurde maschinell übersetzt und wird dann möglicherweise mithilfe des Community Translation Framework (CTF) von Mitgliedern unserer Microsoft Community nachbearbeitet. Weitere Informationen zu CTF finden Sie unter http://support.microsoft.com/gp/machine-translation-corrections/de.

Den englischen Originalartikel können Sie über folgenden Link abrufen: 305995
Disclaimer zu nicht mehr gepflegten KB-Inhalten
Dieser Artikel wurde für Produkte verfasst, für die Microsoft keinen Support mehr anbietet. Der Artikel wird deshalb in der vorliegenden Form bereitgestellt und nicht mehr weiter aktualisiert.
Problembeschreibung
Wenn Sie versuchen, Data Access Objects (DAO) verwenden, um eine Microsoft Jet-Datenbank auf einem Novell-Dateiserver herstellen, erhalten Sie folgende Fehlermeldung:
3050 Datei konnte nicht gesperrt werden.
Ursache
Dieses Problem tritt auf, weil Novell-Dateiserver eine maximale Anzahl von Sperren festlegen und Jet können hohe Anzahl Sperren, liest oder schreibt eine MDB-Datei.
Lösung
Es gibt mehrere Wege, dieses Verhalten zu umgehen:
  • Verwenden Sie Regedit.exe oder Regedt32.exe, um die Windows-Registrierung zu bearbeiten und ändern Sie den MaxLocksPerFile-Wert dauerhaft.
  • Verwenden der SetOption -Methode des DBEngine -Objekts den Wert für MaxLocksPerFile im Code vorübergehend zu ändern.

Methode 1: Ändern Sie MaxLocksPerFile in der Windows-Registrierung

Wichtig Dieser Abschnitt bzw. die Methode oder Aufgabe enthält Schritte, die erklären, wie Sie die Registrierung ändern. Allerdings können schwerwiegende Probleme auftreten, wenn Sie die Registrierung falsch ändern. Stellen Sie daher sicher, dass Sie diese Schritte sorgfältig ausführen. Für zusätzlichen Schutz, sichern Sie die Registry, bevor Sie sie ändern. Dann können Sie die Registry wiederherstellen wenn ein Problem tritt auf. Weitere Informationen zum Sichern und Wiederherstellen der Registrierung finden Sie im folgenden Artikel der Microsoft Knowledge Base:
322756 Wie Sie die Registrierung in Windows sichern und wiederherstellen können?
  1. Klicken Sie im Windows Start auf Ausführen, geben Regedt32.exe, und klicken Sie auf OK , um den Registrierungseditor zu starten.
  2. Suchen Sie den Wert für MaxLocksPerFile unter dem folgenden Registrierungsschlüssel:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Jet 4.0
    Hinweis: Wenn Wert für MaxLocksPerFile nicht vorhanden ist, müssen Sie ihn erstellen.
  3. Verringern Sie den Wert für MaxLocksPerFile .
  4. Beenden Sie den Registrierungseditor.
Hinweis: Diese Methode ändert die Windows-Registrierung Einstellung für Allapplications, die Microsoft Jet Datenbank-Engine Version 4.0 verwenden.

Methode 2: Verwenden der SetOption MaxLocksPerFile vorübergehend ändern

Microsoft bietet Programmierbeispiele zur Veranschaulichung, ohne ausdrücklich oder konkludent, einschließlich, aber nicht beschränkt auf konkludente Garantien der Handelsüblichkeit und/oder Eignung für einen bestimmten Zweck. Es wird vorausgesetzt, dass Sie die Programmierungsbeispiele mit erstellen und Debuggen von Prozeduren verwendeten Tools vertraut sind. Microsoft-Supportmitarbeiter können der Erläuterung der Funktionalität bestimmter Prozeduren helfen, jedoch sie nicht zur Verfügung und Programmierungsbeispiele Ihren Erfordernissen ändern.
Wenn Sie über begrenzte Programmierungskenntnisse verfügen, sollten Sie einen Microsoft Certified Partner oder Microsoft Advisory Services kontaktieren. Weitere Informationen finden Sie auf dieser Microsoft-Websites:

Microsoft Certified Partner- https://Partner.Microsoft.com/Global/30000104

Microsoft Advisory Services- http://support.Microsoft.com/gp/advisoryservice

Weitere Informationen zur Kontaktaufnahme mit Microsoft und den verfügbaren Supportoptionen finden Sie auf der folgenden Microsoft-Website:http://support.Microsoft.com/default.aspx?scid=fh; EN-US; CNTACTMSDie SetOption -Methode überschreibt vorübergehend die Werte für die Schlüssel der Microsoft Jet-Datenbank-Engine in der Registrierung. Der neue Wert bleibt Ineffect, bis Sie es erneut ändern oder das DBEngine -Objekt geschlossen wird.

Das folgende Codebeispiel legt MaxLocksPerFile128 , bevor innerhalb einer Transaktion eine Aktualisierungsoperation ausgeführt wird:
Sub MDBUpdate()   On Error GoTo MDBUpdate_Error   Dim db As DAO.Database, ws As DAO.Workspace   ' Set MaxLocksPerFile.   DBEngine.SetOption dbMaxLocksPerFile, 128   Set db = CurrentDb   Set ws = Workspaces(0)   ' Perform the update.   ws.BeginTrans   db.Execute "UPDATE TableName SET Field1 = 'Updated Field'", _         dbFailOnError   ws.CommitTrans   db.Close   MsgBox "Done!"   Exit SubMDBUpdate_Error:   MsgBox Err & " " & Error   ws.Rollback   MsgBox "Operation Failed - Update Canceled"End Sub				
Status
Dieses Verhalten ist entwurfsbedingt.

Warnung: Dieser Artikel wurde automatisch übersetzt.

Свойства

ИД на статията: 305995 – Последен преглед: 04/04/2016 02:51:00 – Редакция: 6.0

  • kberrmsg kbjet kbprb kbmt KB305995 KbMtde
Обратна връзка