Ein echt tolles Feature, das bei der Jet 4.0 Replikation hinzugefügt wurde...die Möglichkeit, Replikate zu erzeugen (sogar Teilreplikate), bei denen die Daten hinzugefügt oder verändert werden können, aber nicht gelöscht. Leider wurde es nicht zu den JRO (Jet and replication objects) hinzugefügt, es gibt keinen Zugriff mit dem Replikations-Manager, und bei DAO wurden keine Änderungen bezüglich Replikation für diese Version vorgenommen.
Die einzigen Möglichkeiten um diese nützlichen kleinen Biester zu erzeugen sind daher:
1) Verwendung der Access-Oberfläche (die keinen programmatorischen Zugriff bietet)
2) Verwendung des neuesten TSI Synchronizer
3) Verwendung einer kleinen, versteckten Möglichkeit bei der MakeReplica-Methode von DAO!
Wie sieht diese versteckte Möglichkeit aus? Also, der dritte (optionale) "Options"-Parameter bietet zwei dokumentierte Varianten für diese Bitmaske:
Const dbRepMakePartial = 1
Const dbRepMakeReadOnly = 2
aber Versuch und Irrtum haben gezeigt, dass man in Kombination mit oder alternativ zu den obigen auch folgendes verwenden kann (einfach irgendwo definieren):
Const dbRepMakePreventDeletes = 4
Aufruf mit:
db.MakeReplica "c:\foo.mdb", "", _ dbRepMakePreventDeletes Or dbRepMakePartial
und sie erzeugen ein Teilreplikat, bei dem kein Löschen passieren kann!
Nur um die nützlichen Konstanten zu komplettieren: Sie können *jede einzelne* der folgenden verwenden, um die Sichtbarkeit des Replikates zu steuern. Beachten Sie, dass JRO ebenfalls eine Möglichkeit dafür bietet, aber ich setze hier lieber auf eine Karte und mache diese Dinge einheitlich:
Const dbRepGlobalReplica = &H1000
Const dbRepLocalReplica = &H2000
Const dbRepAnonymousReplica = &H4000
(Wenn kein Flag gesetzt wird, sind globale Replikate der Standardwert. Sie sind allen anderen Replikaten der Gruppe bekannt. Lokale Replikate sind nur dem Replikat bekannt, von dem sie erzeugt wurden. Anonyme Replikate sind überhaupt niemandem bekannt, und sie können nur mit ihrem Eltern-Replikat synchronisieren -- brauchbar z.B. bei Internetseiten, die nicht jedes einzelne Replikat bei einem Kunden mitführen sollen.
Der neueste TSI Synchronizer stellt ebenfalls all diese neuen Jet 4.0 Features in der synch40.dll zur Verfügung. Aber wenn Sie den TSI Synchronizer noch nicht verwenden, ist die DAO-Lösung ein einfacher, schneller Weg, die Möglichkeiten bei der Erzeugung von Replikaten auszuweiten.