Diese Transaktion ermöglicht die Verwaltung sämtlicher Tabellen, die Bestandteil der Datenbank sind.
Beim Starten der Transaktion erhält der Benutzer ein Popup-Fenster, wenn einer Tabelle die Gruppenzuordnung fehlt (<sta> oder <dyn>). Dies bedeutet, dass für jede definierte Tabelle eine Regel “SdbGetTblGroup” definiert werden muss, um sie mit der Gruppe zu verknüpfen.
Wenn verschiedene Installationen auf die gleiche Datenbank zugreifen, kann es vorkommen, dass einige Installationen die Datenbanktabelle COU und andere Installationen Sequences als Zähler verwenden. Deshalb wird beim Start dieser Transaktion geprüft, ob bei der aktuell verwendeten Datenbank sowohl die Datenbanktabelle COU als auch die Sequence SSN gleichzeitig existieren. Ist dies der Fall, wird der Benutzer aufgefordert entweder die Tabelle COU oder die Sequence SSN zu löschen, je nach Einstellung in der aktuellen Session.
Folgende Datenbanksysteme werden in SYSDBA unterstützt:
Falls sich die Datenbankbeschreibung aufgrund Einfügens, Änderns oder Löschens von Feldern (Tabellenspalten) oder Ändern von Indexdefinitionen, geändert hat, kann die Datenbank durch Erzeugen und Ausführen des Migrationsscript aktualisert werden.
Für bestimmte Datenbanken sind nicht alle Befehle zum Umstrukturieren zulässig. Zum Beispiel können bei IBM DB2 Datenbanksystemen keine Spalten gedroppt werden. In diesem Fall müssen die entsprechenden Tabellen mittels folgender Schritte aktualisiert werden.
Durch Befolgen der zuvor genannten Schritte wird die Datenbankbeschreibung aktualisiert und System-Dumps aufgrund von Fehlern in der Datenbankbeschreibung werden vermieden.
Durch die Verwendung einer alphanumerischen INR wird der Wertebereich der INR von 100.000.000 um 2.037.468.266.496 (26*36^7) erweitert.
In dieser Transaktion können Zähler, deren numerischer Wert größer als 100.000.000 ist, numerisch oder alphanumerisch eingegeben werden.
Beispiel für die Umrechnung einer alphanumerischen INR in ein numerisches Äquivalent:
A0 000 000 = 1 00 000 000
Die gleichzeitige Verwendung von Single Byte und Multibyte Character Spalten in der Datenbank und in Tabellen resultiert in einer schlechteren Performance.
Das Panel Import/Export Profile gestattet es dem Anwender, Anwenderprofile in beiden Richtungen zwischen flachen Dateien (*.tdp) und der Datenbank zu kopieren.
Das Panel zeigt außerdem die derzeit für das Speichern der Profile verwendete Quelle an.
Um Profile zu kopieren:
Dieser Vorgang kann auch von der Kommandozeile aus durchgeführt werden, wobei die folgenden Schalter zur Verfügung stehen:
Operation | Schalter |
---|---|
Import zur Datenbank | -p DB |
Export zu flachen Dateien | -p TD |
Bei Hintergrundimport bzw. -export mittels des Schalters sind per Voreinstellung sämtliche Profile ausgewählt.
Die Auswahl von Tabellen kann wie folgt vorgenommen werden:
Nach Auswahl der betreffenden Tabelle aus der Liste der verfügbaren Tabellen kann die weitere Verarbeitung gestartet werden. Die getroffene Auswahl bleibt bis zum Wechsel der Auswahl erhalten, sodass aufeinander folgende Arbeitsschritte für eine Tabelle direkt durchgeführt werden können.
Die Auswahl erfolgt anhand einer bestehenden Tabellengruppe. Folgende Tabellengruppen sind verfügbar:
An der rechten Seite des Panels werden die jeweils der Tabellengruppe zugeordneten Tabellen angezeigt.
Wenn eine neue Tabelle in der Anwendung erstellt wird, muß die Regel “SdbGetTblGroup” definiert werden, um die Informationen über die Zugehörigkeit der verschiedenen Datenbanktabellen zu den Gruppen für statische, dynamische und Systemtabellen zu erhalten.
Die Gruppen <sta>, <dyn> und die Informationen über verbundene Verzeichnisse werden nicht mehr aus SYSDBA.INI, sondern aus den Regeln in den Sourcen entnommen.
Die folgenden Funktionen sind verfügbar:
Exportiert die über das Feld “Tabelle oder Grp. zu verarbeiten” ausgewählte(n) Tabelle(n) in den angegebenen “Dateipfad für Import/Export”. Beim Export wird für jede zu exportierende Tabelle eine Datei mit dem Namen <Tabelle>.DBE erstellt. Mit dem Markieren der Checkbox “Überschreibe vorhandene Exportdateien ohne Nachfragen” kann definiert werden, dass bereits vorhandene Exportdateien automatisch überschrieben werden, ohne dass der Benutzer das Überschreiben für jede einzelne Exportdatei bestätigen muss. Standardmäßig ist diese Checkbox unmarkiert.
Importiert die über das Feld “Tabelle oder Grp. zu verarbeiten” ausgewählte(n) Tabelle(n) aus dem angegebenen “Dateipfad für Import/Export” in die Datenbank. Beim Import wird für jede zu importierende Tabelle nach einer Datei mit dem Namen <Tabelle>.DBE gesucht und diese dann importiert.
Mit dem Markieren der Checkbox “Ignoriere Fehler von nicht definierten Spalten beim Import” wird definiert, dass fehlende Spalten in der Importdatei und/oder der Tabelle nicht zu einem Fehler führen. Standardmäßig ist diese Checkbox markiert.
Löscht den Inhalt der ausgewählte(n) Tabelle(n) ohne die Tabellenbeschreibung zu löschen.
Löscht die ausgewählte(n) Tabelle(n) vollständig, also inklusive Inhalt und Tabellenbeschreibung, aus der Datenbank.
Erzeugt die ausgewählte(n) Tabelle(n). Ist die Checkbox 'Ben. Creation Script' eingeschaltet, werden die Tabellen durch das Creation Script erzeugt, andernfalls durch den internen Befehl DBCreate. Sofern für die Tabelle(n) notwendige Verzeichnisse in der Partition “data” angelegt werden müssen, wird deren Bezeichnung aus der INI-Datei SYSDBA.INI im Abschnitt [DATA-Directories] gelesen und, sofern nicht vorhanden, angelegt.
Überprüft die ausgewählte(n) Tabelle(n) der Datenbank hinsichtlich korrekter Spalten und Index-Definition im Vergleich zur Datenbeschreibung der Module.
Repariert für die ausgewählte(n) Tabelle(n) den INR-Zähler.
Ermöglicht die Anzeige des Datenbankinhalts für alle Tabellen mit einem vorhandenen xxxGET-Modul.
Ermöglicht das Editieren der Zählertabellen. Ab Version 2.2 ist das Counter Stepping fix auf 1 gesetzt, die Section [Counter-Stepping] in der sysdba.ini wird nicht mehr verwendet.
Diese Funktion prüft für die ausgewählte(n) Tabelle(n) zu allen Feldern, denen eine oder mehrere Codetable(s) zugeordnet ist/sind, ob der Feldinhalt der Tabelle auch in der Codetable enthalten ist. Am Ende der Verarbeitung wird ein Prompt-Dialog angezeigt, der auf die Anzahl fehlender Einträge hinweist. Diese können dann im Log betrachtet werden.
Wenn die Checkbox “Fehlende einf.” markiert ist, werden die fehlenden Einträge in der Codetable automatisch in allen Codetables eingefügt. Mehrere Codetables zu einem Feld bedeuten, dass es verschiedene Dekodierungen (Langtexte) für diese Codetable gibt. Beispiel: Ein Code kann in SWIFT-Code oder in Langtext umgesetzt werden. In beiden Codetables muss dann für jeden vorkommenden Dateninhalt eine Dekodierung eingetragen sein.
Wenn unter “Tabelle oder Grp zu verarbeiten” die Option “<all>” für alle Datenbanktabellen ausgewählt wird, sind auch die Checkboxen “Unben. ins Log” und “Xref” aktiviert. Wird “Unben. ins Log” markiert, werden alle nicht verwendeten Codewerte ins Log geschrieben. Durch Markieren der Checkbox “Xref” werden alle Cross References der Codetables mit im Log ausgegeben.
Ermöglicht das Hantieren sämtlicher Systemsperren (Locks).
Das Script wird in einem neuen Panel angezeigt. Über den Button [Ausführen] kann das Script direkt ausgeführt werden. Das Script kann jedoch auch zuerst über den Button [Speichern] gespeichert und zu einem späteren Zeitpunkt z.B. mit der Transaktion “SQL-Script” (SYSSQL) ausgeführt werden. Mit dem Button [Schließen] wird das neue Panel geschlossen. Das erzeugte Script wird auch im Log angezeigt.
Das erzeugte Script enthält die DDL-Kommandos, um die vorhandenen Tabellen und Indizes in der Datenbank an die Datenbeschreibung der Module anzupassen.
Dazu gehört
Beim Verwenden des Migrationsscripts werden standardmäßig die überzähligen Spalten und Indizes gelöscht, nicht aber die externen Tabellen. Diese können durch Markieren oder Unmarkieren der entsprechenden Checkboxen geändert werden.
Spalten, die in einem Index enthalten sind, können nicht ohne weiteres geändert werden.
Hierzu muss der Index vorher gedroppt und nach Ändern der Spalte neu erzeugt werden.
Dies kann aber nur für Indizes durchgeführt werden, die dem System bekannt sind.
Dies sind Indizes, die entweder im Modul definiert sind oder aber als additional Indizes in SYSDBA. Sollte die Spalte in einem anderen Index definiert sein, so wird einen Warnung im Log ausgegeben und es wird kein Migrationsscript erzeugt, es sei denn “Löschen Index” ist markiert.
Damit werden alle fremde Indizes gedroppt.
Indizes können für MariaDB und MySQL Datenbanksysteme nicht gedroppt werden, wenn andere Sitzungen in dieser Datenbank arbeiten.
In einem solchen Fall wird die Verarbeitung mit einem Hinweis beendet und das Migrationsscript nicht ausgeführt.
Erzeugt ein SQL-Script für die ausgewählte(n) Tabelle(n), in dem die Create-Anweisungen zum Erzeugen der Tabelle und den Indizes enthalten sind.
Das Script wird in einem neuen Panel angezeigt. Über den Button [Ausführen] kann das Script direkt ausgeführt werden. Das Script kann jedoch auch zuerst über den Button [Speichern] gespeichert und zu einem späteren Zeitpunkt ausgeführt werden. Mit dem Button [Schließen] wird das neue Panel geschlossen.
Das Migration Script und das Creation Script können auch im Batch-Modus erstellt werden.
Befehlszeilen-Switches:
“-cresql <Dateiname> Creation Script”
“-migsql <Dateiname> Migration Script”
Wenn kein Dateiname eingefügt wird:
“Creation Script: Name=getpath(“TMP”)+“dbcreate.sql”“
“Migration Script: Name=getpath(“TMP”)+“dbmigrate.sql”“
”-w” für Überschreiben einer vorhandenen Datei
Bei einem Fehler im Batch wird ein Returncode (auch für ”-i” und “-o”) gesetzt.
“-i <Pfad>” Erzeugt die Datenbank für die Applikation
“<Pfad>” = Optionaler Pfad der dbe-Dateien. Falls “-o” ohne Pfad => “getpath( data )\dbe”
Einzelne Aktionen:
<Pfad> = Optionaler Pfad der dbe-Dateien. Falls “-o” ohne Pfad => “getpath( data )\dbe”
Einzelne Aktionen:
Zusätzliche Indizes, die nicht in den Modulen von DOKA definiert sind, können über den Button [Zus. Indizes] spezifiziert werden. Hierbei wird ein Name und das dazugehörige Erzeugungs SQL angegeben. Entspricht der Name eines Index einem bereits im Modul definierten Index, so ersetzt der zusätzliche Index diesen. Über Checkboxen kann geschaltet werden, ob die Statements zum Erzeugen des Index und Droppen des Index in die Scripte ( Erzeugungsscript und Migrationsscript ) generiert werden sollen.
Erzeugt ein SQL Script, das CHAR, VARCHAR, CLOB Datentypen in Place zu NCHAR, NVARCHAR und NCLOB Datentypen konvertiert.
Diese Funktionalität steht für Oracle und MS SQL Server Datenbanksysteme zur Verfügung:
Verfahren:
Eine Sequenz ist ein Objekt, mit dem sich eindeutige Zahlen generieren lassen. Sequenzen liegen außerhalb einer Datenbanktransaktion. Folgende Datenbanksysteme unterstützen Sequenzen:
Läuft die Applikation mit Zählern (counters) in Tabelle COU und nicht mit Sequenzen, wird der Button [Umwandeln>SEQ.] sichtbar. Damit kann man das System von Zählern in Tabelle COU auf Zähler in Sequenzen umschalten. Zähler in Sequenzen führt zu einem Performance-Gewinn gegenüber Zählern in Tabelle COU.
Die Checkbox “Ausgewählter Export, Löschen oder DbSelect” ermöglicht die Definition von Kriterien (where-Bedingung) für eine ausgewählte Tabelle, wenn diese exportiert, gelöscht oder das Feld INR neu nummeriert werden soll.
Mit einem Klick auf den Button [Zeige Log] wird das Log der durchgeführten Aktionen seit dem Start der Transaktion angezeigt.
Sind bei der Verarbeitung Fehler aufgetreten, wird am Ende der Verarbeitung ein Prompt-Dialog angezeigt, der auf die Anzahl Fehler hinweist. Die Fehler können dann im Log betrachtet werden.
Datenfeld | Beschreibung |
---|---|
Zeige Log | Zeigt das Verarbeitungslog der Transaktion an. |