Einzelnen Beitrag anzeigen

berens

Registriert seit: 3. Sep 2004
431 Beiträge
 
Delphi 2010 Professional
 
#7

AW: Access-Datenbank gesperrt - Problem mit Windows-Update?

  Alt 8. Okt 2020, 11:15
Vielen Dank für die detaillierte Antwort.

Ja, bei mir kommt auch der lange ConnectionString raus, in sofern verwende ich den jetzt auch.

Ich habe all meine Quelltextdatei überarbeitet:
-Es wird nun häufiger eine über Parameter übergebene TAdoConnection verwendet, anstatt selbst (temporär) eine neue zu Erstellen
-Überall wo eine temporäre AdoConnection erstellt wird, gebe ich paranoia-mäßig alles mit try..finally frei
Delphi-Quellcode:
      finally
        CloseQueryAndClearSQLText(q);
      end;
    finally
      db.Close;
    end;
  finally
    FreeAndNil(q);
    FreeAndNil(db);
  end;
Was mich mit deinem Post jetzt aufgeschreckt hat:
Bisher dachte ich, dass cmReadWrite letztendlich doch "Einzel-Benutzung" bedeutet, da das Wort "Share" fehlt. Ich verwende bis dato (imo problemlos?) immer cmShareDenyNone - "Alle Teilen, nichts verbieten". So wurde das glaube ich auch überall empfohlen und in den Beispielen verwendet. Ich bin eben fast vom Hocker gefallen, als ich in der OH nachgeschlagen habe:
Code:
cmReadWrite - Die Verbindung verfügt über Lese-/Schreibrechte.
cmShareDenyRead - Die Verbindung kann von anderen Benutzern nicht mit Leseberechtigung geöffnet werden.
cmShareDenyWrite - Die Verbindung kann von anderen Benutzern nicht mit Schreibberechtigung geöffnet werden.
cmShareDenyNone - Die Verbindung kann mit keiner Art von Zugriffsrecht von anderen Benutzern geöffnet werden.
cmShareDeny... : Der Benutzer kann alles, ausser Read-Lesen, Write-Schreiben, None-Nichts --> Der Benutzer kann alles, mit Ausnahme von nichts - ohne Ausnahme, siehe auch: https://www.delphipraxis.net/107684-post4.html
Zitat:
nein, MSAccess ist auch für einen Mehrbenutzermodus vorgesehen

der Verbindungsstring wird normalerweise mit den Zugangsberechtigungen "share deny none' also jeder kann gleichzeitig zugreifen
s.a. Connection.Mode cmShareDenyNone
Edit: Ebenfalls hier wird rauf gepocht, das cmReadWrite nicht im Netzwerk ausreicht, und cmShareDenyNone zu verwenden ist: https://www.delphipraxis.net/43690-a...ert-nicht.html


Hier bräuchte ich jetzt bitte echt schnell nochmal Rückmeldung:
Was Unterscheidet cmShareDenyNone von cmReadWrite? Ist cmReadWrite wirklich für Mehrbenutzer-Zugriff für Access-Datenbanken über Netzwerk geeignet? Können dabei (z.B. nach einem Update) [einmalig] Tabellen angepasst werden (Spalten hinzufügen, ...), oder schlagen irgendwelche Befehle fehl?
Delphi 10.4 32-Bit auf Windows 10 Pro 64-Bit, ehem. Delphi 2010 32-Bit auf Windows 10 Pro 64-Bit

Geändert von berens ( 8. Okt 2020 um 11:19 Uhr)
  Mit Zitat antworten Zitat