[About]

[SPEED Ferret Knowledge Base]

[Lillig & Zahn Company Logo]
Objekte die unter Versions-Kontrolle von einer Datenbank kopiert werden, haben Nur-Lesen-Status.

Zurück zum Hauptindex

Artikel ID: SFKB0009
Datum: 18. August 1997
Gilt für: SPEED Ferret für Access 97  (Revision B und früher)

Frage

Ich habe eine Abfrage von einer Datenbank unter Versions--Kontrolle (MS-Visual SourceSave) in die aktuelle Datenbank kopiert, die nicht unter Versions-Kontrolle ist.

Jedesmal wenn ich eine Suche durchführe zeigt SPEED Ferret den Status des kopierten Objekts als Nur Lesen (Read-Only) an und erlaubt mir nicht Änderungen an der Abfrage vorzunehmen. Was geht hier vor?

Antwort

Wenn ein Objekt unter Versions-Kontrolle gestellt ist, fügt Access dem Objekt eine Eigenschaft SccStatus hinzu. SPEED Ferret prüft die Existenz dieser Eigenschaft um zu bestimmen, ob das Objekt unter Versions-Kontrolle steht. Wenn die Eigenschaft existiert, prüft SPEED Ferret den Wert dieser Eigenschaft um zu prüfen, ob das Objekt in der aktuellen Datenbank ausgecheckt ist.

Wenn das Objekt von einer Datenbank zur anderen kopiert wird, bleibt die SccStatus Eigenschaft des Objekts erhalten,

auch wenn die Zieldatenbank nicht unter Versions-Kontrolle steht. Wenn das Objekt beim Zeitpunkt des Kopierens nicht ausgecheckt war, markiert SPEED Ferret das Objekt als Nur Lesen wenn Sie die Zieldatenbank durchsuchen.

Betrifft mich dieses Problem?

Diese Problem betrifft Sie nur, wenn die folgenden Bedingungen zutreffen:

  1. Ihre Datenbank steht nicht unter Versions-Kontrolle
  2. Ihre Datenbank enthält Objekte die von einer anderen Datenbank kopiert wurden, welche unter Versions-Kontrolle stand
  3. Die kopierten Objekte waren zum Zeitpunkt des Kopierens nicht ausgecheckt waren.

Analyse

SPEED Ferret sollte zusätzlich prüfen, ob auch die aktuelle Datenbank unter Versions-Kontrolle steht. Wenn dies für die aktuelle Datenbank nicht zutrifft, sollte SPEED Ferret die SccStatus Eigenschaft der Objekte in der Zieldatenbank ignorieren.

Diese Änderung ist für die Revision C von SPEED Ferret für Access 97 vorgesehen.

Laden Sie Revision C von SPEED Ferret für Access 97. SPEED Ferret prüft, ab dieser Version zusätzlich, ob auch die aktuelle Datenbank unter Versions-Kontrolle steht.

Workaround

Der nachfolgende Quell-Code entfernt automatisch die unnötige SccStatus Eigenschaft von allen Objekten der aktuellen Datenbank, vorausgesetzt, die aktuelle Datenbank steht selbst nicht unter Versions-Kontrolle.

Vorgehensweise

  1. Erstellen Sie ein neues Modul in Ihrer Datenbank und fügen Sie den folgenden Quell-Code ein.
  2. Öffnen Sie das Direktfenster und geben Sie DeleteSccStatus ein
  3. CODE>
  4. Option Compare Database
  5. Option Explicit
  6. Sub DeleteSccStatus()
  7.   Dim DB As DAO.Database
  8.   Dim SccStatus As Long
  9.   Dim Defined As Boolean
  10.   Set DB = CurrentDb()
  11.   On Error Resume Next
  12.   SccStatus = DB.Properties("SccStatus")
  13.   Defined = (Err.Number = 0)
  14.   On Error GoTo 0
  15.   If Defined Then
  16.     Debug.Print "Diese Datenbank befindet sich unter Versions-Kontrolle."
  17.     Debug.Print "SccStatus Eigenschaft wurde nicht gelöscht."
  18.   Else
  19.     Debug.Print "Diese Datenbank befindet sich nicht unter Quell-Code Kontrollel.."
  20.     Clear DB.Containers!Tables
  21.     Clear DB.Containers!Forms
  22.     Clear DB.Containers!Reports
  23.     Clear DB.Containers!Scripts
  24.     Clear DB.Containers!Modules
  25.     Debug.Print "Alle SccStatus Eigenschaften wurden gelöscht"
  26.   End If
  27. End Sub
  28. Sub Clear(Cont As DAO.Container)
  29.   Dim Doc As DAO.Document
  30.   Dim SccStatus As Long
  31.   Dim Defined As Boolean
  32.   For Each Doc In Cont.Documents
  33.     On Error Resume Next
  34.     SccStatus = Doc.Properties("SccStatus")
  35.     Defined = (Err.Number = 0)
  36.     On Error GoTo 0
  37.     If Defined Then
  38.       Doc.Properties.Delete "SccStatus"
  39.       Debug.Print " - Deleted SccStatus property from " + Cont.Name + "." + Doc.Name
  40.     End If
  41.   Next
  42. End Sub

Copyright (c) 1998-2004 Lillig & Zahn Softwarentwicklung und Black Moshannon Systems. Alle Rechte vorbehalten.
SPEED Ferret ist ein Warenzeichen von Black Moshannon Systems.