Unicode-Upgrade der Datenbank
Alle in der IndySoft-Datenbank gespeicherten Daten entsprechen dem Zeichensatz, der von der zugrunde liegenden Datenbank (MSSQL, Oracle, Firebird usw.) festgelegt wurde. In der Regel sind Zeichensätze auf eine Sprache oder eine Gruppe von Sprachen ausgerichtet. Der Unicode-Zeichensatz ist jedoch einzigartig, da er so konzipiert ist, dass er Zeichen aus allen wichtigen Sprachen weltweit umfasst. (Siehe http://unicode.org/standard/standard.html)
Ab Version 11 unterstützt IndySoft die Verwendung einer Unicode-Datenbank. Wenn die IndySoft-Datenbank bei der Installation noch völlig neu ist, kann in MSSQL oder Oracle ein Unicode-DDL-Skript verwendet werden, um die Unicode-Feldtypen anzulegen. In diesem Fall ist das Dienstprogramm „ConvertDB“ NICHT erforderlich. *-Die Skripte zur Datenbankerstellung „Unicode.sql“ befinden sich im IndySoft-Programmverzeichnis im Unterverzeichnis „DBScripts“.
Wenn die IndySoft-Datenbank zuvor als Nicht-Unicode-Datenbank genutzt wurde, muss sie zunächst aktualisiert werden. Dieser einmalige Datenbankkonvertierungsprozess wird mithilfe des Dienstprogramms „ConvertDB“ durchgeführt. Dieses Dienstprogramm darf nur von einem Systemadministrator ausgeführt werden. Bevor Sie eine Datenbank aktualisieren, beachten Sie bitte einige Besonderheiten, die für den jeweiligen Datenbanktyp gelten:
Unicode – MSSQL-Datenbanken
Es ist wichtig zu wissen, dass eine Unicode-Datenbank in MSSQL per Definition für jedes Zeichen Daten mit doppelter Byte-Länge speichert (UTF-16-Kodierung). Im Vergleich zu einer Nicht-Unicode-Datenbank (Single-Byte) verdoppelt sich dadurch die Größe der Datenbank. Die Unterstützung aller internationalen Zeichen in einer einzigen Datenbank bietet also einen enormen Vorteil, geht jedoch mit einem Kompromiss hinsichtlich der Datenbankgröße einher. Bitte stellen Sie sicher, dass Ihr Datenbankadministrator während des Konvertierungsprozesses eine Vergrößerung der Datenbank zulässt, da IndySoft im täglichen Betrieb genutzt wird.
Unicode-Datenbanken in MSSQL verwenden im Vergleich zu Nicht-Unicode-Datenbanken mehrere modifizierte Datentypen:
oNVARCHAR (anstelle von VARCHAR)
oNCHAR (anstelle von CHAR)
oNTEXT (anstelle von TEXT)
Das Dienstprogramm „ConvertDB“ durchläuft alle IndySoft-Datenbanktabellen und passt diese Feldtypen nach Bedarf an – wobei alle vorhandenen Daten erhalten bleiben.
Unicode – Oracle-Datenbanken
Im Allgemeinen können Oracle-Datenbanken Unicode-fähig gemacht werden, indem man den Standardzeichensatz des Servers verwendet oder Unicode-Feldtypen in den entsprechenden Datenbanktabellen einsetzt. IndySoft setzt auf diese zweite Strategie. Dadurch wird der Eingriff in bestehende Datenbankserver auf ein Minimum beschränkt (es werden lediglich die IndySoft-Tabellen geändert).
Unicode-Datenbanken in ORACLE verwenden im Vergleich zu Nicht-Unicode-Datenbanken mehrere modifizierte Datentypen:
oNVARCHAR2 (anstelle von VARCHAR2)
oNCHAR (anstelle von CHAR)
oNCLOB (anstelle von CLOB)
Das Dienstprogramm „ConvertDB“ durchläuft alle IndySoft-Datenbanktabellen und passt diese Feldtypen nach Bedarf an – wobei alle vorhandenen Daten erhalten bleiben.
Unicode – Firebird-Datenbanken
Firebird-Datenbanken erfordern nur sehr wenige Änderungen, um Unicode zu unterstützen. Es ist lediglich eine kurze Änderung am Standardzeichensatz der Datenbank erforderlich. Ab Version 11.0.40 aktualisiert der Datenbank-Upgrade-Prozess (isupdb.exe) während des Upgrades von Version 7.5 automatisch den Standardzeichensatz aller IndySoft Firebird-Datenbanken auf Unicode. Daher ist es in der Regel NICHT erforderlich, „ConvertDB.exe“ auf einem Firebird-Server auszuführen (es sei denn, der IndySoft-Support hat dies ausdrücklich angeordnet).
Ausführen des ConvertDB-Dienstprogramms
Für die Ausführung von ConvertDB gelten folgende Voraussetzungen:
a. ConvertDB kann nur über eine zweistufige Datenbankverbindung ausgeführt werden.
b. ConvertDB kann nur von einem Benutzer mit dem Profil „Systemadministrator“ in IndySoft ausgeführt werden. Eine Anmeldung ist erforderlich.
c. Alle Benutzer MÜSSEN vor dem Ausführen des Dienstprogramms „ConvertDB“ aus der IndySoft-Datenbank abgemeldet sein und während der Datenbankkonvertierung abgemeldet bleiben.
d. Es wird dringend empfohlen, vor Beginn des Upgrades eine vollständige Sicherung der IndySoft-Datenbank durchzuführen.
Bei MSSQL- und Oracle-Datenbanken umfasst der Aktualisierungsprozess das Protokollieren aller Einschränkungen und Schlüssel aus den IndySoft-Tabellen, das Löschen dieser Objekte, die Aktualisierung der erforderlichen Feldtypen und das anschließende erneute Hinzufügen derselben Einschränkungen und Schlüssel. Dies kann ein langwieriger Vorgang sein – je nach Größe der IndySoft-Datenbank. Alle IndySoft-Layouts (aus dem LayoutBuilder) werden am Ende des Vorgangs ebenfalls zügig auf Unicode umgestellt.
Vor der ersten Anmeldung wird das Dialogfeld „Datenbankeinstellungen bestätigen“ angezeigt. Dieser Dialog zeigt Ihnen die aktuellen Datenbankverbindungseinstellungen aus „DatabaseSettings.exe“ an – so können Sie sicher sein, welche Datenbank aktualisiert werden soll. Aktualisieren Sie auf keinen Fall versehentlich die Produktionsdatenbank, wenn Sie glauben, dass Sie nur auf die Testdatenbank verweisen! Dieses Upgrade kann nicht rückgängig gemacht werden. Überprüfen Sie die Verbindung immer noch einmal, bevor Sie fortfahren. Melden Sie sich nach der Bestätigung als „Systemadministrator“ an. Vor Beginn des Upgrades müssen nur zwei Kontrollkästchen überprüft werden:

ConvertDB – Datenbank-Upgrade auf Unicode
Datenbank aktualisieren (Deaktivieren, um nur zu protokollieren): Die Datenbank wird NICHT aktualisiert, wenn diese Option deaktiviert ist. Stattdessen werden alle erforderlichen DDL-Änderungen zur Überprüfung protokolliert.
Nur für Layout-Upgrades: Diese Option wird nur selten benötigt; aktivieren Sie sie nur, wenn Sie vom IndySoft-Support dazu aufgefordert werden. Dadurch werden nur Layouts aus dem LayoutBuilder aktualisiert – Datenbanktabellen werden nicht aktualisiert.
Drücken Sie auf „Start“, um die Konvertierung zu starten. Alle Aktionen werden nach ihrer Ausführung im Fenster „DDL-Protokoll“ protokolliert. Sobald das Upgrade abgeschlossen ist, können sich die Benutzer bei der aktualisierten Datenbank anmelden.
Hinweis: Nach Abschluss der Datenbankaktualisierung auf Unicode müssen alle Benutzer das Kontrollkästchen „Unicode DB“ in ihren Verbindungseinstellungen unter „DatabaseSettings“ (oder in den Einstellungen des Anwendungsservers) aktivieren, bevor sie eine Verbindung zur aktualisierten Datenbank herstellen. IndySoft versucht, den Benutzer zu benachrichtigen, wenn eine Unstimmigkeit festgestellt wird – diese Unstimmigkeit muss jedoch in den Datenbank-Einstellungen behoben werden, bevor man sich auf dem Hauptbildschirm anmeldet.

Unicode-DB-Einstellungen – Datenbank-Einstellungen
Nach der Umstellung der Datenbank auf Unicode können internationale Zeichen problemlos in jeden IndySoft-Bildschirm eingegeben werden:

Unicode-Daten – Beispiel
Protokolle zum Entfernen/erneuten Hinzufügen Hinweis: Diese Funktion ist ab IndySoft-Version 12.1.0 verfügbar.
Wenn Sie Version 12.1.0 oder höher verwenden, stehen Ihnen im Unicode-Upgrade-Dienstprogramm (ConvertDB.exe) neue Funktionen zur Verfügung, die im Hintergrund ablaufen. Jedes Mal, wenn das Dienstprogramm ausgeführt wird, fügt es automatisch alle SQL-Anweisungen zum Löschen und erneuten Hinzufügen in eine Protokolldatei ein, in der die Aktivitäten protokolliert werden. Sie verfügen nun über eine Liste aller Objekte, die in der Aktualisierung enthalten sind, sodass Sie diese später entfernen oder erneut hinzufügen können. Sollte während des Upgrades ein unvorhergesehenes Ereignis eintreten (z. B. wenn der Speicherplatz knapp wird), können Sie nun im Verzeichnis C:\Users\Public\Public Documents\IndySoft nachsehen, ob dort neue .sql-Dateien vorhanden sind. Bitte beachten Sie, dass diese Protokolldateien unabhängig davon erstellt werden, ob das Dienstprogramm die Option „Datenbank aktualisieren“ aktiviert hat.

Unicode-Upgrade: SQL-Protokolle löschen und neu hinzufügen |