# $ K @ + Prinzip

Wie funktioniert der MDB Strukturmanager 2000/XP

Sie sind Softwareentwickler und nutzen die Access 2000/XP Datenbank als Ihre Datenquelle. Durch die Weiterentwicklung Ihrer Anwendung müssen Sie die Datenstrukturen der zugrundeliegenden Datenbanken anpassen. Da Sie ihre Anwendung bereits an viele Kunden ausgeliefert haben, können Sie diese Anpassungen nicht bei jedem Kunden manuell durchführen.

clip_image002

Der MDB Strukturmanager 2000/XP hilft Ihnen nun genau dieses Problem zu lösen. Die Software analysiert zu diesem Zweck die Datenstruktur Ihrer Orginaldatenbank und speichert diese dann in einer Tabelle. Diese sogenannte 'Strukturtabelle' speichert immer den letzten Stand der Datenstrukturen der Orginaldatenbank. Nehmen Sie nun Änderungen an der Orginaldatenbank vor, so erkennt der MDB Strukturmanager 2000/XP diese Änderungen beim nächsten Analyselauf.

Während der Analyse der Orginaldatenbank wird in einer weiteren Tabelle, der sogenannten 'Updatetabelle', das Updatescript erstellt. Dieses Updatescript kann durch das Update Control ausgeführt werden. Das Control aktualisiert mit diesen Anweisungen die Datenbankstruktur Ihrer Kunden. Zusätzlich verwaltet es dabei automatische auch verschiedene Versionsstände von Kundendatenbanken.

clip_image004


# $ K @ + Anwendung starten

Starten Sie den MDB Strukturmanager 2000/XP vom Startmenü oder vom Desktop aus. Haben Sie nur eine Testversion wird zuerst eine Infobox für ca. 5 - 10 sec eingeblendet.

clip_image005

Im Feld über den Schaltflächen werden die zuletzt geöffneten Projekte angezeigt. Sie können diese durch eine einfachen Mausklick auf die jeweilige Zeile öffnen. Mit den Schaltflächen können Sie ein vorhandenes Projekt öffnen oder ein neues Projekt erstellen. Klicken Sie auf die Schaltfläche Projekt öffnen wird die Standardbox Datei öffnen angezeigt. Wählen Sie dann eine Projektdatei aus. Ist mit dem gewählten Projekt eine Arbeitsgruppendatei von Access verbunden so wird die Loginbox angezeigt, wenn eine Benutzeranmeldung erforderlich ist, anderenfalls wird die Projektdatei sofort geladen.

Klicken Sie auf die Schaltfläche Neues Projekt so wird die Loginbox angezeigt. Hier können Sie die Projektdatei explizit mit einer Arbeitsgruppendatei verknüpfen. Möchten Sie die aktuelle Arbeitsgruppendatei von Access verwenden, tragen Sie in das Feld Systemdatenbank den Wert '[DEFAULT]' ein. Als Loginname müssen Sie 'admin' verwenden. Klicken Sie dann auf die Schaltfläche Anmelden.

Im Menüpunkt Datei können Sie ebenfalls die Befehle Projekt öffnen und Neues Projekt auswählen. Mit dem Menüpunkt Projekt speichern können Sie das aktuelle Projekt speichern. Mit dem Befehl Login ändern könne Sie das Projekt mit einer anderen Arbeitsgruppendatei und einem anderen Loginname verknüpfen. Mit dem Befehl Beenden können Sie die Anwendung beenden.

Achtung! Wie bei Access 2000/XP üblich, kann sich der Benutzer während der Laufzeit der Anwendung nur an einer Arbeitsgruppendatei anmelden. Möchten Sie sich an einer anderen Arbeitsgruppendatei anmelden müssen Sie die Anwendung schließen und neu starten.


# $ K @ + Datenbanksets verwalten

Im linken Bereich der Anwendung befindet sich ein Listenfeld mit dem Namen Datenbankset. Verwenden Sie für ein Programmprojekt mehrere Datenbanken können Sie für jede dieser Datenbanken ein Datenbankset anlegen. Sie können auf diese Weise, alle zu einem Projekt gehörigen Datenbanken, übersichtlich zusammenfassen.

clip_image007

Klicken Sie einen Eintrag in der Liste werden die Daten die zu diesem Datenbankset gehören in die Felder auf der rechten Seite des Formulars eingetragen. Möchten Sie ein neues Datenbankset anlegen, so klicken die auf die Schaltfläche Neu unterhalb des Listenfelds. Möchten Sie den markierten Eintrag löschen klicken Sie auf die Schaltfläche Löschen. Die Änderungen sind erst dann endgültig, wenn Sie das Projekt speichern.

Ein Datenbankset besteht aus mehreren Datenbanken. Im ersten Feld auf der rechten Seite des Formulars steht der Pfad- und Dateiname der Orginaldatenbank. Die Schaltfläche hinter dem Feld öffnet die Standarddialogbox Datei öffnen. Existiert die Datenbank nicht so fragt Sie der MDB Strukturmanager 2000/XP beim verlassen des Felds ob es die Datenbank erstellen soll.

Im zweiten Feld steht der Pfad und Dateiname der Datenbank, in welcher die Strukturtabelle abgelegt wird. Im dritten Feld steht der Name der Strukturtabelle. In der Auswahlliste werden nur Tabellen angezeigt die vom MDB Strukturmanager 2000/XP erstellt worden sind. Die Anwendung prüft beim Verlassen des Feldes ob die Tabelle existiert. Zur Neuanlage einer Strukturtabelle geben Sie einen beliebigen Namen ein und bestätigen Sie die Dialogbox mit Ja.

Tip! Sie könne die Strukturtabelle auch in der Orginaldatenbank speichern. Es ist dann jedoch wichtig das der Name der Strukturtabelle mit 'MSys' beginnt. Tabellen die mit diesen vier Buchstaben beginnen werden von der Anwendung bei der Analyse ignoriert (Systemtabellen). Tabelle die diese Namenskonvention nicht einhalten werden auch in der Zieldatenbank erstellt.

Im vierten Feld steht der Pfad- und Dateiname der Datenbank, in welcher die Updatetabelle gespeichert wird. Im fünften Feld steht der Name der Updatetabelle. In der Auswahlliste werden nur Tabellen angezeigt die vom MDB Strukturmanager 2000/XP erstellt worden sind. Die Anwendung prüft beim Verlassen des Feldes ob die Tabelle existiert. Zur Neuanlage einer Updatetabelle geben Sie einen beliebigen Namen ein und bestätigen Sie die Dialogbox mit Ja.

Tip! Wenn Sie den MDB Strukturmanager 2000/XP für eine Access 2000/XP Anwendung verwenden ist es am einfachste die Updatetabelle in der Programmdatenbank zu speichern. Haben Sie Ihre Anwendung in einer anderen Sprache erstellt speichern Sie die Updatetabelle am besten in einer eigenen Updatedatenbank.

Im letzten Feld können Sie den Pfad und Dateiname einer Testdatenbank angeben. Mit der Schaltfläche Updatetest können Sie das vom MDB Strukturmanager 2000/XP erstellt Updatescript prüfen. Durch diesen Test stellen Sie sicher, daß das erstellte Updatescript auch wirklich funktioniert. Sinnvoll ist die Verwendung einer mit Daten gefüllten Testdatenbank. Dies stellt sicher das auch die durch Datentypänderungen auftretenden Probleme erkannt werden.

Achtung! Verwenden Sie für jede Orginaldatenbank eine eigene Strukturtabelle, eine eigene Updatetabelle und eine eigene Testdatenbank. Die Ergebnisse des MDB Strukturmanager 2000/XP sind sonst nicht verwendbar.


# $ K @ + Änderungen suchen

Wenn Sie alle erforderlichen Datenbanken und Tabelle erstellt haben, können Sie mit der Schaltfläche Updateanalyse Ihre Orginaldatenbank auf Änderungen untersuchen lassen. Haben Sie seit der letzten Analyse der Orginaldatenbank Änderungen vorgenommen, findet die Software diese Änderungen und erstellt ein entsprechendes Updatescript.

Achtung!

Das Tool erzeugt ein fehlerhaftes Updatescript wenn Sie Änderung des Felddatentyps an Feldern vornehmen die Teil einer Relation sind. Sie können diese Änderung trotzdem durchführen. Gehen Sie dazu bitte folgendermaßen vor:

1. Entfernen Sie die Beziehungen auf das zu ändernde Feld

2. Ändern Sie dem Felddatentyp.

3. Lassen Sie nun diese Änderungen von DBSM analysieren.

4. Fügen Sie nun die Beziehungen wieder hinzu.

5. Lassen Sie nun diese Änderungen von DBSM analysieren.

Achtung!

Haben Sie eine Tabelle, ein Feld, eine Index oder eine Relation gelöscht und möchten Sie das Objekt wieder mit dem gleichen Namen erstellen. Dann führen Sie bitte vor der Erstellung des Objekts einen Datenbankanalyse durch.

Tip!

Access führt bestimmte Aktualisierungen nur durch schließen der Datenbank bzw. von Access selbst durch. Zum Bespiel: Tabellen werden bei der Löschung nur in ein temporäres Objekte umgewandelt und werden erst durch Schließen der Datenbank endgültig gelöscht. Schließen Sie daher bitte die Orginaldatenbank bevor Sie eine Analyse durchführen. Nach dem Kopieren oder Importieren von Tabellen ist es sogar sinnvoll Access 97 vollständig zu schließen. Sie vermeiden auf diese Weise unnötige Updateschritte.

Haben Sie manuelle Schritte in das Updatescript eingefügt, werden Sie vor der Analyse von der Anwendung gefragt, ob Sie diese Schritte auch auf die Orginaldatenbank anwenden möchten. Dies kann unter bestimmt Voraussetzungen sinnvoll sein (s.h. Kapitel Der MDB Strukturmanager 2000/XP Referenz).

Haben Sie Datensätze am Ende der Updatetabelle gelöscht, werden Sie gefragt ob das Script mit dem aktuellen Release-Stand der Orginaldatenbank fortgesetzt werden soll. Dies ist in fast allen Fällen der richtige Weg (s.h. Kapitel Der MDB Strukturmanager 2000/XP Referenz).


# $ K @ + Updatetest

Die Funktion Updatetest ermöglicht es Ihnen das erstellte Updatescript bequem an einer Testdatenbank zu testen. Verwenden Sie, wenn möglich, eine mit Daten gefüllte Testdatenbank.


# $ K @ + Registrierung

Um einen Registrierschlüssel einzugeben rufen Sie bitte im Menüpunkt '?' den Befehl Registrierung auf und geben Sie die nötigen Informationen in das Formular ein. Bestätigen Sie die Eingabe mit der Schaltfläche OK. Als registrierter Benutzer erhalten Sie kostenlose Hotlinehilfe für 30 Tage und kostenlose Servicereleases, wenn Sie eine e-mail Adresse angeben.


# $ K @ + Funktionsweise

Das Update Control ist der Softwareteil des MDB Strukturmanager 2000/XP der die Datenstrukturaktualisierungen an der Kundendatenbank durchführt. Dazu müssen die dem Control lediglich mitteilen welche Datenbank aktualisiert werden soll und wo sich das Updatescript befindet. Diesen Softwareteil dürfen Sie als registrierter Benutzer in Ihre Anwendung einbauen und mit dieser Anwendung verteilen (s.h. Lizenzbedingungen).

Wichtiger Hinweis! Die Aktualisierung von Datenstrukturen in Datenbanken ist ein besonders kritischer Vorgang. Sollte dieser Vorgang aus irgendwelchen Gründen (Stromausfall, Systemabsturz, ungültige Datentypen, unzureichende Rechte usw.) unterbrochen werden, kann dies zum teilweisen oder vollständigen Verlust von Daten führen. Bitte erstellen Sie eine Datensicherung der aktuellen Daten oder weisen Sie den Anwender Ihrer Software daraufhin, daß er eine aktuelle Datensicherung seiner Daten erstellt, bevor ein Datenbankstrukturupdate durchgeführt wird (s.h. auch Lizenzbedingungen).

Damit Sie das Control verwenden können, müssen Sie es auf einem beliebigen Formular plazieren. Das Control selbst ist zur Laufzeit unsichtbar und dient nur als Container für die Software. Die Eigenschaften und Ereignisse des Controls teilt denn aktuellen Zustand mit.

Bauen Sie die Methoden CheckForUpdate und RunUpdate möglichst in die Startroutine Ihrer Software ein. Auf die Datenbankendateien deren Datenstrukturen Sie aktualisieren möchten, muß das Update Control einen exklusiven Zugriff haben.


# $ K @ + Versionsverwaltung

Die Versionsverwaltung zeigt Ihnen die Releasestände aller an einem Datenbankset beteiligten Datenbanken und Tabellen an.

Die Releasestände der Orginaldatenbank, der Strukturtabelle und der Updatetabelle müssen immer übereinstimmen. Dadurch wird die Konsistenz des Updatescripts sichergestellt. Eine Änderungsanalyse kann nur bei gleichen Releaseständen gestartet werden.

Sie können den Releasestand auch auf einen neuen Startwert festsetzten. Geben Sie dazu in das Feld Neu eine Wert größer als den bisherigen Releasestand ein und klicken Sie auf die Schaltfläche OK. Der maximale Wert von ReleaseID beträgt 2^31 = 2147483648.


# $ K @ + DSM_SourceDB

Gibt die aktuelle Quelldatenbank der Updatetabelle zurück oder legt diese fest

Syntax

Objekt.DSM_SourceDB [= "Text"]

Teil

Beschreibung

Objekt

Update Control

Text

Laufwerk, Pfad- und Dateiname der Datenbank welche die Updatetabelle (Updatescript) enthält.


# $ K @ + DSM_SourceTable

Gibt den Namen der aktuellen Updatetabelle zurück oder legt diese fest

Syntax

Objekt.DSM_SourceTable [= "Text"]

Teil

Beschreibung

Objekt

Update Control

Text

Tabellenname der Updatetabelle


# $ K @ + DSM_UpdateDB

Gibt den Namen der zu aktualisierenden Datenbank zurück oder legt diese fest

Syntax

Objekt.DSM_UpdateDB [= "Text"]

Teil

Beschreibung

Objekt

Update Control

Text

Laufwerk, Pfad- und Dateiname der Datenbank die mit dem Update Control akutalisiert werden soll.


# $ K @ + DSM_SystemDB

Gibt den Namen der Arbeitsgruppendatei zurück oder legt diese fest

Syntax

Objekt.DSM_SystemDB [= "Text"]

Teil

Beschreibung

Objekt

Update Control

Text

Laufwerk, Pfad- und Dateiname der Arbeitsgruppendatenbank. Die Arbeitsgruppendatei kann während der Laufzeit der Anwendung nicht mehr verändert werden.


# $ K @ + DSM_Login

Gibt den Loginname zurück oder legt diese fest

Syntax

Objekt.DSM_Login [= "Text"]

Teil

Beschreibung

Objekt

Update Control

Text

Loginname für die Anmeldung an der aktuellen Arbeitsgruppendatenbank


# $ K @ + DSM_Passwort

Legt das Paßwort für die Anmeldung an der Arbeitsgruppendatenbank fest.

Syntax

Objekt.DSM_Password = "Text"

Teil

Beschreibung

Objekt

Update Control

Text

Passwort für die Anmeldung an der aktuellen Arbeitsgruppe

Ein Abfrage des Passwortes ist nicht möglich. Fehler (393)


# $ K @ + DSM_Error

Gibt den zuletzt im Control aufgetretenen Fehler zurück.

Syntax

Long = Objekt.DSM_Error

Teil

Beschreibung

Objekt

Update Control

Long

Fehlernummer des zuletzt aufgetretene Fehlers


# $ K @ + DSM_Error_Log

Gibt den Funktionsname zurück von der Funktion wo der letzte Fehler aufgetreten ist

Syntax

String = Objekt.DSM_Error

Teil

Beschreibung

Objekt

Update Control

String

Funktionsname der Fehlerfunktion


# $ K @ + SetWorkspace

Sie können alternative zur Einstellung der Arbeitsgruppendatei, des Loginnamens und des Paßworts auch einen gültigen Workspace an das Control übergeben. Sowohl die zu aktualisieren Datenbank als auch die Updatescripttabelle müssen in diesem Workspace über die notwendigen Rechte verfügen.

Syntax

Objekt.SetWorkspace Workspace

Teil

Beschreibung

Objekt

Update Control

Workspace

Aktueller Workspace


# $ K @ + CheckForUpdate

Prüft ob ein Datenbankstrukturupdate erforderlich ist. Setzten Sie die Eigenschaften DSM_SourceDB, DSM_SourceTable, DSM_UpdateDB bevor Sie die Methode anwenden. Verwenden Sie eine gesicherte Datenbank müssen Sie zusätzlich noch die Arbeitsgruppendatei, den Loginname und das Passwort angeben. Sie können alternativ auch einen gültigen Workspace mit der Methode SetWorkspace setzten.

Syntax

Boolean = Objekt. CheckForUpdate

Teil

Beschreibung

Objekt

Update Control

Boolean

True = Es ist ein Strukturupdate erforderlich

False = Die Datenbank ist aktuell.


# $ K @ + RunUpdate

Führt das Datenbankstrukturupdate anhand des Updatescripts durch. Setzten Sie die Eigenschaften DSM_SourceDB, DSM_SourceTable, DSM_UpdateDB bevor Sie die Methode anwenden. Verwenden Sie eine gesicherte Datenbank müssen Sie zusätzlich noch die Arbeitsgruppendatei, den Loginname und das Passwort angeben. Sie können alternativ auch einen gültigen Workspace mit der Methode SetWorkspace setzten. Stellen Sie sicher das der angemeldete User auch alle Änderungen, Neuanlagen und Löschungen an der Zieldatenbank durchführen darf.

Wichtig! Das Update Control setzt einen exclusiven Zugriff auf die zu aktualisierende Datenbankdatei vorraus. Ist ein exclusiver Zugriff nicht möglich bricht das Update Control den Updatevorgang ab.

Syntax

Long = Objekt.RunUpdate

Teil

Beschreibung

Objekt

Update Control

Long

True = Datenbankupdate erfolgreich abgeschlossen

1 = Update ist fehlgeschlagen

2 = Datenbank ist bereits aktuell


# $ K @ + Progress

Dieses Ereignis wird vom Updatecontrol in regelmäßigen Abständen ausgelöst. Dadurch können Sie den Benutzer über den Fortschritt des Updates informieren.

Syntax

Progress(iModus As Integer, sText As String, vValue As Variant)

Teil

Beschreibung

Objekt

Update Control

iModus

Gibt an was durch das Ereigniss erreicht werden soll

1 = Initialisiere Statusbar oder Progressbar

2 = Liefert einen neuen Fortschrittswert

3 = Entferne Statusbar oder Progressbar

in Access 2000/XP können die Argumente können direkt der Funktion SysCmd übergeben werden.

sText

Gibt in Abhängigkeit von iModus Werte aus

iModus = 1: Überschrifttext

iModus = 2: akuteller Vorgang im Control

iModus = 3: kein Wert

vValue

Gibt in Abhängigkeit von iModus Werte aus

iModus = 1: Maximalwert des Progressbars

iModus = 2: Aktueller Wert des Progressbars

iModus = 3: kein Wert


# $ K @ + SetSourceDB

Dies Methode wurde für vorwiegend für Access Programmierer implementiert. Sie ermöglich es die aktuelle Datenbank die von CurrentDB geliefert wird, direkt an das Control zu übergeben. Dadurch braucht die Datenbank nicht ein weiteres mal geöffnet werden.

Syntax

Objekt.SetSourceDB Workspace

Teil

Beschreibung

Objekt

Update Control

Database

Datenbankobjekt welches die SourceTable Tabelle enthält


# $ + K ExternCode

Achtung! Dieses Ereignis wurde durch ExternCodeDBExternCodeDB ersetzt. Das Ereignis ExternCode bleibt aus Kompatibilätsgründen im Control für Jet 4.0 Datenbanken enthalten.

Das Ereignis wird ausglöst wenn Sie in das Updatescript manuell Befehle einfügen die nicht im Befehlsumfang des Updatecontrols enthalten sind. (Befehlscodes > 100).

Syntax

ExternCode(iReleaseID As Long, iAktion As Integer, sName As String, _

iType As Integer, vValue As Variant, vMemo As Variant)

Teil

Beschreibung

Objekt

Update Control

iReleaseID

Schritt an dem der Befehl aufgetreten ist

iAktion

Numerischer Befehlsschlüssel

sName

Name des Objekts auf das sich der Befehl bezieht

iType

Datentyp in vValue - Access Typendefinition

vValue

Wert der gesetzt werden soll

vMemo

weiteren Informationen.


# $ + K Der MDB Strukturmanager 2000/XP in neuen Anwendungen

Haben Sie die Datenbankdateien deren Datenstruktur Sie mit dem MDB Strukturmanager 2000/XP verwalten möchten noch nicht an Kunden verteilt, ist eine Umstellung der Anwendung ziemlich einfach. Legen Sie zuerst ein neues Projekt an. Legen Sie für jede Datenbankdatei die Sie verwalten möchten ein Datenbankset an. Sind an Ihrem Projekt mehrere Datenbankdateien beteiligt, können Sie die Strukturtabellen und die Updatetabellen in je einer Datenbankdatei zusammenfassen.

Wenn Sie Ihre Anwendung in Access 2000/XP erstellen dann trennen Sie am besten die Datenbankdatei die, die Kundendaten enthält von der Datenbankdatei die das eigentliche Programm enthält (Programmdatenbank). Sie können dann die Updatetabellen in Ihre Programmdatenbank erzeugen und mit dieser zusammen als Einheit ausliefern. Bei Anwendungen die in anderen Programmiersprachen entwickelt wurden, müssen Sie eine separate Updatedatenbank ausliefern.

Beim ersten Analyselauf erstellt der MDB Strukturmanager 2000/XP je nach Anzahl der Tabellen und Felder der Datenbank eine sehr große Anzahl von Einträgen in der Updatetabelle. Das Update Control kann mit diesem Script in einer völlig leeren Datenbankdatei ein komplettes Abbild ihrer Orginaldatenbank erstellen. Sie haben nun zwei Möglichkeiten:

1. Sie verteilen mit Ihrer Anwendung grundsätzlich keine Datenbankdateien die später Kundendaten enthalten sollen. Sie müssen dann immer das gesamte Updatescript ausliefert und beim ersten Start der Anwendung die Datenbankdateien mit dem Update Control erzeugen lassen. Das Update Control erzeugt dann vollautomatisch die erforderlichen Datenbankdateien. Leider sind die erzeugten Dateien verhältnismäßig groß. Sie sollte daher die Dateien anschließend komprimieren.

2. Sie verteilen mit Ihrer Anwendung immer alle erforderlichen Datenbankdateien. Erzeugen Sie dazu mit den Update Control oder mit der Testfunktion des MDB Strukturmanager 2000/XP die aktuellen Datenbankdateien. Diese Vorgehensweise ist deshalb wichtig weil dadurch eine Kennzeichnung der Datenbankdateien mit dem entsprechenden Releasestand erfolgt. Sie können in diesem Fall dann alle Updateschritte aus den Updatetabellen entfernen bis zum ältesten von Ihnen noch unterstützen Releasestand.

Prüfen Sie nun zukünftig bevor Sie eine neue Version verteilen mit dem MDB Strukturmanager 2000/XP ob sich die Ihrer Anwendung zugrundeliegenden Datenstrukturen geändert haben. Sie erreichen auf diese Weise ein einfaches Versionsmanagement Ihrer Datenbankstrukturen.


# $ + K Der MDB Strukturmanager 2000/XP in bereits verteilten Anwendungen

Haben Sie Ihre Anwendung bereits an Kunden verteilt, ist die Einführung des MDB Strukturmanager 2000/XP für das Datenbankstruktur Management trotzdem möglich. Haben Sie jedoch bereits unterschiedliche Version der Datenstruktur bei Kunden muß zunächst ein Zusammenführung der einzelnen Versionen erfolgen. (Es ist geplant ein weiteres Control für diese Aufgabe zu entwickeln). Bringen Sie dazu alle bereits verteilten Versionen auf den aktuellen Stand. Verwenden Sie nun genau diesen Stand um das Versionsmanagement mit dem MDB Strukturmanager 2000/XP zu starten. Sichern Sie den Stand dieser Datei auf jeden Fall den sie stellt die Basis ihrer Versionsverwaltung dar.

Legen nun ein neues Projekt an. Legen Sie für jede Datenbankdatei die Sie verwalten möchten ein Datenbankset an. Sind an Ihrem Projekt mehrere Datenbankdateien beteiligt, können Sie die Strukturtabellen und die Updatetabellen in je einer Datenbankdatei zusammenfassen.

Beim ersten Analyselauf erstellt der MDB Strukturmanager 2000/XP je nach Anzahl der Tabellen und Felder der Datenbank eine sehr große Anzahl von Einträgen in der Updatetabelle. Die nun erstellten Updateschritte beschreiben die völlig Neuerstellung der Datenbankdateien bis zum aktuellen Stand. Löschen Sie daher alle erzeugten Updateschritte da die schon verteilten Datenbankdateien dem aktuellen Releasestand entsprechen.

Das Update Control sucht beim Ausführen der Methode RunUpdate nach der aktuellen Versionsnummer der Zieldatei, findet es keine Versionsnummer verarbeitet es das Updatescript von der ersten Zeile an.

Der MDB Strukturmanager 2000/XP in neuen AnwendungenDer_MDB_Strukturmanager_2000_in_neuen_Anwendungen


# $ K @ + Fehlermeldungen

In der nachfolgenden Tabelle sind die Fehlermeldungen beschrieben die das Control auslösen kann. Tritt ein Fehler wären eines Datenbankupdates auf wird das Update sofort unterbrochen. Bitte lesen Sie das Kapitel Der MDB Strukturmanager 2000/XP - Referenz genau durch. Dort werden Vorgehensweisen besprochen die einen stabilen und sicheren Updateablauf gewährleisten.

Fehlernummer

Beschreibung

30000

Unbekannter Fehler im Updatesteuerelement. Dieser Fehler ist kritisch weil mit ziemlicher Sicherheit der Updatevorgang unterbrochen wurde oder überhaupt nicht durchgeführt werden konnte. Der Auslösende Fehler wird in die Scriptzeile geschrieben wo der Fehler ausgelöst wurden.

30001

Eigenschaft DSM_UpdateDB nicht gesetzt.

30002

Die Updatedatenbank konnte nicht exclusive geöffnet werden

30010

Eigenschaft DSM_SourceDB nicht gesetzt

30011

Eigenschaft DSM_SourceTabelle nicht gesetzt

30012

Die Sourcedatenbank konnte nicht geöffnet werden.

30013

Die Sourcetabelle konnte nicht geöffnet werden.

30028

Die Systemtabelle konnte nicht initialisiert werden

30029

Loginname oder Passwort ist falsch

30030

Tabelle ist bereits vorhanden

30031

Objekt wurde nicht in der Auflistung gefunden

Dieser Fehler tritt auf wenn das Control ein Objekt aktualisieren soll das nicht vorhanden ist.

30032

Tabelle kann nicht gelöscht werden

30033

Feld kann nicht gelöscht werden

30034

Tabelle wurde nicht gefunden und kann deshalb nicht bearbeitet werden


# $ K @ + Updatescript anzeigen

Die Schaltfläche Updatescript öffnet ein Fenster welches das erzeugt Updatescript anzeigt. Sie können in diesem Fenster das Updatescript auch bearbeiten, erweitern und löschen. Bitte testen Sie auf jeden Fall manuelle Eingriffe in das Updatescript mit der Funktion Updatetest.

Die untenstehende Abbildung zeigt das geöffnete Updatescript Fenster.

clip_image009

clip_image010

Sie können mit der Maus, den Cursortasten, den Bildtasten oder dem Datensatznavigator eine Datensatz, bzw. ein einzelnes Feld auswählen. Sie können das aktivierte Feld bearbeiten soweit dies zulässig ist. (s.h. UpdatescriptUpdatescript ). Mit der Schaltfläche Speichern oder durch verlassen des Datensatzes können Sie den geänderten Datensatz abspeichern. Mit der Taste ESC können Sie Änderungen rückgängig machen. Mit der Schaltfläche Neu können Sie einen neuen Datensatz erstellen. Mit der Schaltfläche Löschen können Sie einen vorhanden Datensatz löschen.


# $ K @ + Updatescript Befehle

Befehlscode

Beschreibung

0

Abschnittsende, speichere ReleaseID in der Zieldatenbank

1

Tabelle erstellen

2

Tabelle ändern

3

Tabelle löschen

4

Feld neu erstellen

5

Feld ändern

6

Feld löschen

7

Index erstellen

8

Index löschen

9

Index um ein Feld erweitern

10

Eigenschaft erstellen

11

Eigenschaft ändern

12

Eigenschaft löschen

13

Beziehung erstellen

14

Beziehung löschen

15

Beziehung um ein Feld erweitern

16

Abfrage erstellen

17

Abfrage löschen

21

SQL Statement ausführen

22

Gespeicherte Abfrage ausführen

99

Updatescript nur bis zu dieser Zeile ausführen. Im Gegensatz zum 'Ende' Befehl wird das Updatescript nach diesem Befehl nicht fortgesetzt.

>= 100

Löst das Ereignis ExternCodeDB aus


# $ K @ + Datentypen

Die untenstehende Auflistung gibt Aufschluß darüber welche Datentypen vom Update Control verarbeitet werden können. Bei alle benutzerdefinierten Befehle wird Value als Variable vom Typ Variant übergeben wird.

Access Konstante

Wert

Zulässig

Beschreibung

dbBigInt

16

nein

Big Integer-Daten (nur ODBCDirect)

dbBinary

9

nein

Binärdaten

dbBoolean

1

ja

Boolesche Daten (True/False)

dbByte

2

ja

Byte-Daten (8-Bit)

dbChar

18

nein

Zeichensatzdaten (nur ODBCDirect)

dbCurrency

5

ja

Währungsdaten

dbDate

8

ja

Datumswerte

dbDecimal

20

nein

Dezimaldaten (nur ODBCDirect) obwohl Access 2000/XP diesen Datentyp nun erzeugen kann. Problem ist hierbei das via DAO 3.6 oder ALTER Script keine Erzeugung dieses Feldtyps möglich ist.

dbDouble

7

ja

Fließkommadaten mit doppelter Genauigkeit

dbFloat

21

nein

Fließkommadaten (nur ODBCDirect)

dbGUID

15

ja

GUID-Daten

dbInteger

3

ja

Integer-Daten

dbLong

4

ja

Long Integer-Daten

dbLongBinary

11

nein

Binärdaten (Bitmap)

dbMemo

12

ja

Memo-Daten (erweiterter Text)

dbNumeric

19

nein

Numerische Daten (nur ODBCDirect)

dbSingle

6

ja

Fließkommadaten mit einfacher Genauigkeit

dbText

10

ja

Textdaten (variable Länge)

dbTime

22

nein

Daten im Zeitformat (nur ODBCDirect)

dbTimeStamp

23

nein

Daten in Zeit- und Datumsformat (nur ODBCDirect)

dbVarBinary

17

nein

Variable Binärdaten (nur ODBCDirect)


# $ K @ + Updatescript

Das Updatescript ist das Kernstück der Anwendung. Der DSM Analyser schreibt alle Änderungsinformationen in diese Tabelle hinein. Das Update Control führt diese Anweisungen aus und aktualisiert damit die Datenbankstrukturen Ihrer Kunden.

Die untenstehende Tabelle erläutert die Bedeutung der acht Spalten.

Spaltenname

Beschreibung

ReleaseID

Fortlaufende Nummer, die zur Kennzeichnung des Releasestandes verwendet wird. Dieses Feld kann nicht bearbeitet werden.

Code

Befehlscode der vom DSM Update Control ausgewertet wird.

Befehlscodes >= 100 werden als benutzerdefinierte Befehle dem Anwender des Update Controls als das Ereignis ExternCode übergeben.

Updatescript BefehleUpdatescript_Befehle

Befehl

Befehl im Klartext. Dieses Feld kann nicht bearbeitet werden. Sie können die Befehlstabelle beliebig um Befehlscodes erweitern. Die Tabelle wird als Systemtabelle unter dem Namen 'DSM_Befehle' in der Updatedatenbank abgelegt. Diese Spalte wird nur im Updatescript anzeigenUpdatescript_anzeigen .

Name

Tabellenname, Feldname, Indexname, Eigenschaftsname, Abfragename oder Beziehungsname.

Type

Datentypen der im Feld Value gespeicherten Daten. Die Datentypen entsprechen den Accessdatentypen dbText, dbLong, ..DatentypenDatentypen

Value

Enthälten den Wert der vom Update Control gesetzt werden soll.

Comment

Beliebiges Textfeld zur Kommentierung der Vorgänge. Der DSM Analyser schreibt am Anfang und am Ende eines Blocks das Datum der Erstellung in dieses Feld

ErrorCode

Speichert den Fehlercode der während eine Updateablauf im Update Control aufgetreten ist. Die hier abgelegten Fehlercodes sind mit denen von Visual Basic indentisch. FehlermeldungenFehlermeldungen


# $ + K ExternCodeDB

Dieses Ereignis wird ausglöst wenn Sie in das Updatescript manuell Befehle eingefügt haben die nicht im Befehlsumfang des Updatecontrols enthalten sind. (Befehlscodes > 100).

Syntax

ExternCodeDB(iReleaseID As Long, iAktion As Integer, sName As String, _

iType As Integer, vValue As Variant, vMemo As Variant, _

dbUpdateDB As Database)

Teil

Beschreibung

Objekt

Update Control

iReleaseID

Schritt an dem der Befehl aufgetreten ist

iAktion

Numerischer Befehlsschlüssel

sName

Name des Objekts auf das sich der Befehl bezieht

iType

Datentyp in vValue - Access Typendefinition

vValue

Wert der gesetzt werden soll

vMemo

weiteren Informationen.

dbUpdateDB

Datenbankobjekt die gerade vom DSM-Control aktualisiert


# $ + K Abhängigkeiten

Das C.OCX Update-Control benötigt zur Ausführung die Visual Basic Runtime Umgebung. Im Systemverzeichnis wird die Datei C.DEP abgelegt. Diese Datei enthält Verweise auf die benötigten Dateien. Wenn Sie ein Installationsassistenten wie das Visual Basis Setup verwendet werden automatische alle benötigten Dateien eingebunden. Bei der Verwendung des Access 2000/XP Setup-Assistenten müssen Sie Dateien von Hand eintragen.

Bei der Installation von Der MDB Strukturmanager 2000/XP werden alle benötigten Dateien auf Ihrer Platte installiert. Sie sind berechtigt diese Dateien zusammen mit dem Control zu verteilen.

Hier noch der Inhalt der C.DEP Datei. Die unter Uses1-10 aufgeführten Dateien werden vom -Control benötigt.

[Version]

Version=3.0.0.1

[C.ocx <0007>]

Dest=$(WinSysPath)

Date=28.08.99

Time=22:34

Version=3.0.0.1

CABFilename=C.CAB

CABINFFile=C.INF

Uses1=MSVBVM60.DLL

Uses2=OLEAUT32.DLL

Uses3=OLEPRO32.DLL

Uses4=ASYCFILT.DLL

Uses5=STDOLE2.TLB

Uses6=COMCAT.DLL

Uses7=VB6DE.DLL

Uses8=DAO360.DLL

Uses9=COMDLG32.OCX

Uses10=MSSTKPRP.DLL


# $ + K Visual Basis Beispiel

Beispiel aus dem Internet laden!JumpHtml(`http://www.energypro.de/?product/mdb2000/smples.htm')


# $ + K DSM_DBPWD_Source

Legt das Datenbankkennwort für die Anmeldung an der Sourcedatenbank fest (Die Datenbank welche die Scripttabelle enthält).

Syntax

Objekt.DSM_DBPWD_Source = "Text"

Teil

Beschreibung

Objekt

Update Control

Text

Datenbankkennwort das die Sourcedatenbank schützt. Fehler (393)


# $ + K DSM_DBPWD_Update

Legt das Datenbankkennwort für die Anmeldung an der Updatedatenbank fest (Die Datenbank welche aktualisiert werden soll).

Syntax

Objekt.DSM_DBPWD_Update = "Text"

Teil

Beschreibung

Objekt

Update Control

Text

Datenbankkennwort das die Updatedatenbank schützt. Fehler (393)


# $ + K Support

Technische Unterstützung erhalten Sie direkt vom Vertragshändler oder von der Energy Pro GmbH. Sie erhalten 30 Tage kostenlosen Grundsupport vom Zeitpunkt Ihrer ersten Anfrage an. Danach erhalten Sie gerne kostenpflichtigen Support. Die Preise teilen wir Ihnen auf Anfrage gerne mit.

Für Supportanfragen wenden Sie sich bitte an

Internet http://www.energypro.de!JumpHtml(`http://www.energypro.de')

Email support@energypro.de

Bitte geben Sie folgende Daten unbedingt an, da wir Ihre Anfrage sonst nicht beantworten können.

1. Firma

2. Ansprechpartner (Telefon, Fax und email)

3. Lizenznummer

4. Version

5. Betriebssystem

6. Problembeschreibung


# $ + K Beispiele und FAQs

Klicken Sie auf den untenstehenden Link um die aktuellsten Beispiele

und FAQ’s aus dem Internet zu laden.

Beispiel aus dem Internet laden!JumpHtml(`http://www.energypro.de/?product/mdb2000/smples.htm')


# $ + K Wichtige Hinweise

1. Verwenden Sie als Masterdatenbank für den MDB Strukturmanager 2000/XP bitte niemals eine replizierte Datenbank. Dies führt eventuell zu einem inkonsistenten Updatescript. Datenbank die mittels Updatescript aktualisiert werden können hingegen problemlos in Replikate umgewandelt werden. Führen Sie dann Änderungen mit dem Updatecontrol immer nur am Designmaster der Replikatgruppe durch, und aktualisieren Sie die Replikate über den Replikationsmanager von Access 2000/XP. Der MDB Strukturmanager 2000/XP ist für den Transport der Datenbankänderung zum Kunden zuständig, nicht aber innerhalb einer Replikatgruppe.

clip_image011

2. Microsoft hat in der Access 2000/XP Version den Datentyp DECIMAL in die Jet-Engine eingeführt. Der Datenbankstrukturmanager kann diesen Datentyp leider nicht handhaben, weil Felder dieses Typs weder mit DAO 3.6, ADO noch mittels eines ALTER-Script erstellbar sind. Felder dieses Datentyps werden automatisch als Felder vom Typ Währung angelegt. Hinweise zur Lösung dieses Problems nehmen wir gerne entgegen.

3. Die Aktualisierung von Datenstrukturen in Datenbanken ist ein besonders kritischer Vorgang. Sollte dieser Vorgang aus irgendwelchen Gründen (Stromausfall, Systemabsturz, ungültige Datentypen, unzureichende Rechte usw.) unterbrochen werden, kann dies zum teilweisen oder vollständigen Verlust von Daten führen. Bitte erstellen Sie eine Datensicherung der aktuellen Daten oder weisen Sie den Anwender Ihrer Software daraufhin, daß er eine aktuelle Datensicherung seiner Daten erstellt, bevor ein Datenbankstrukturupdate durchgeführt wird (s.h. auch Lizenzbedingungen).


# Prinzip

$ Prinzip

K Prinzip

@ Status|0|0|0|0|Ulrich Ehninger|||||

+ MAIN:0

# Anwendung_starten

$ Anwendung starten

K Anwendung starten

@ Status|0|0|0|0||||||

+ MAIN:0

# Datenbanksets_verwalten

$ Datenbanksets verwalten

K Datenbanksets verwalten

@ Status|0|0|0|0||||||

+ MAIN:0

# nderungen_suchen

$ Änderungen suchen

K Änderungen suchen

@ Status|0|0|0|0||||||

+ MAIN:0

# Updatetest

$ Updatetest

K Updatetest

@ Status|0|0|0|0||||||

+ MAIN:0

# Registrierung

$ Registrierung

K Registrierung

@ Status|0|0|0|0||||||

+ MAIN:0

# Funktionsweise

$ Funktionsweise

K Funktionsweise

@ Status|0|0|0|0||||||

+ MAIN:0

# Versionsverwaltung

$ Versionsverwaltung

K Versionsverwaltung

@ Status|0|0|0|0||||||

+ MAIN:0

# DSM_SourceDB

$ DSM_SourceDB

K DSM_SourceDB

@ Status|0|0|0|0||||||

+ MAIN:0

# DSM_SourceTable

$ DSM_SourceTable

K DSM_SourceTable

@ Status|0|0|0|0||||||

+ MAIN:0

# DSM_UpdateDB

$ DSM_UpdateDB

K DSM_UpdateDB

@ Status|0|0|0|0||||||

+ MAIN:0

# DSM_SystemDB

$ DSM_SystemDB

K DSM_SystemDB

@ Status|0|0|0|0||||||

+ MAIN:0

# DSM_Login

$ DSM_Login

K DSM_Login

@ Status|0|0|0|0||||||

+ MAIN:0

# DSM_Passwort

$ DSM_Passwort

K DSM_Passwort

@ Status|0|0|0|0||||||

+ MAIN:0

# DSM_Error

$ DSM_Error

K DSM_Error

@ Status|0|0|0|0||||||

+ MAIN:0

# DSM_Error_Log

$ DSM_Error_Log

K DSM_Error_Log

@ Status|0|0|0|0||||||

+ MAIN:0

# SetWorkspace

$ SetWorkspace

K SetWorkspace

@ Status|0|0|0|0||||||

+ MAIN:0

# CheckForUpdate

$ CheckForUpdate

K CheckForUpdate

@ Status|0|0|0|0||||||

+ MAIN:0

# RunUpdate

$ RunUpdate

K RunUpdate

@ Status|0|0|0|0||||||

+ MAIN:0

# Progress

$ Progress

K Progress

@ Status|0|0|0|0||||||

+ MAIN:0

# SetSourceDB

$ SetSourceDB

K SetSourceDB

@ Status|0|0|0|0||||||

+ MAIN:0

# ExternCode

$ ExternCode

+ MAIN:0

K ExternCode

# Der_MDB_Strukturmanager_2000_in_neuen_Anwendungen

$ Der MDB Strukturmanager 2000 in neuen Anwendungen

+ MAIN:0

K DSM for Access 2000/XP in neuen Anwendungen

# Der_MDB_Strukturmanager_2000_in_bereits_verteilten_Anwendungen

$ Der MDB Strukturmanager 2000 in bereits verteilten Anwendungen

+ MAIN:0

K DSM for Access 2000/XP in bereits verteilten Anwendungen

# Fehlermeldungen

$ Fehlermeldungen

K Fehlermeldungen

@ Status|0|0|0|0||||||

+ MAIN:0

# Updatescript_anzeigen

$ Updatescript anzeigen

K Updatescript anzeigen;Updatescript bearbeiten

@ Status|0|0|0|0||||||

+ MAIN:0

# Updatescript_Befehle

$ Updatescript Befehle

K Updatescript Befehle;Code;Updatescript anzeigen;Updatescript bearbeiten

@ Status|0|0|0|0||||||

+ MAIN:0

# Datentypen

$ Datentypen

K Datentypen

@ Status|0|0|0|0||||||

+ MAIN:0

# Updatescript

$ Updatescript

K Updatescript

@ Status|0|0|0|0||||||

+ MAIN:0

# ExternCodeDB

$ ExternCodeDB

+ MAIN:0

K ExternCodeDB

# Abh_ngigkeiten

$ Abhängigkeiten

+ MAIN:0

K Abhängigkeiten;DSM2000C;Dateiabhängigkeit;Installation;Erforderliche Dateien

# Visual_Basis_Beispiel

$ Visual Basis Beispiel

+ MAIN:0

K Visual Basis Beispiel

# DSM_DBPWD_Source

$ DSM_DBPWD_Source

+ MAIN:0

K DSM_DBPWD_Source

# DSM_DBPWD_Update

$ DSM_DBPWD_Update

+ MAIN:0

K DSM_DBPWD_Update

# Support

$ Support

+ MAIN:0

K Support

# Beispiele_und_FAQs

$ Beispiele und FAQs

+ MAIN:0

K Beispiele und FAQs

# Wichtige_Hinweise

$ Wichtige Hinweise

+ MAIN:0

K Wichtige Hinweise

Last edited Jan 20, 2015 at 3:17 PM by ehnie, version 1