Unicode konfigurieren

Um Unicode konfigurieren und verwenden zu können, müssen Sie eine bestimmte Prozedur ausführen, damit die API einen Unicode-Dateibereich auf dem Server registriert und alle Dateinamen in diesem Dateibereich Unicode-Zeichenfolgen werden.

Einschränkung: Unicode-und Nicht-Unicode-Dateinamen können nicht in demselben Dateibereich gespeichert werden.
  1. Kompilieren Sie den Code mit dem Flag -DUNICODE.
  2. Alle Zeichenfolgen in Ihrer Anwendung müssen wchar-Zeichenfolgen sein.
  3. Folgen Sie den Strukturen in der Datei tsmapitd.h und den Funktionsdefinitionen in der Datei tsmapifp.h für Aufrufe an die API.
  4. Setzen Sie das Flag useUnicode auf bTrue im Funktionsaufruf tsmInitEx . Jeder neue Dateibereich wird als Unicode-Dateibereich registriert.

Wenn Sie Daten an bereits registrierte Nicht-Unicode-Dateibereiche senden, sendet die API Dateinamen weiterhin als Nicht-Unicode. Benennen Sie die alten Dateibereiche auf dem Server in fsname_old um und starten Sie einen neuen Unicode-Dateibereich für neue Daten. Die API schreibt Nicht-Unicode-Daten aus den alten Dateibereichen zurück. Verwenden Sie das Feld bIsUnicode in der Struktur tsmQryRespFSData, die in einem Abfragedateibereich zurückgegeben wird, um festzustellen, ob es sich um einen Unicode-Dateibereich handelt.

Jeder Funktionsaufruf dsmXXX verfügt über einen entsprechenden Funktionsaufruf tsmXXX. Der Unterschied zwischen beiden sind die verwendeten Strukturen. Alle Strukturen des Funktionsaufrufs tsmXXX haben den Typ dsChar_t für Zeichenfolgewerte, wenn sie mit dem UNICODE-Flag kompiliert werden. dsChar_r wird wchar zugeordnet. Es gibt keinen anderen Unterschied zwischen diesen Schnittstellen.
Einschränkung: Verwenden Sie entweder die eine oder die andere Schnittstelle. Kombinieren Sie nicht die Schnittstellen des Funktionsaufrufs dsmXXX und des Funktionsaufrufs tsmXXX. Stellen Sie sicher, dass Sie die IBM® Storage Protect -Strukturen und IBM Storage Protect -Versionsdefinitionen verwenden.

Einige Konstanten werden weiterhin in der Datei dsmapitd.h definiert, daher benötigen Sie beim Kompilieren sowohl die Datei dsmapitd.h als auch die Datei tsmapitd.h.

Sie können die Schnittstelle IBM Storage Protect auch auf anderen Betriebssystemen wie UNIX oder Linux® verwenden, aber auf diesen Betriebssystemen wird der Typ dsChar_t auf char abgebildet, da Unicode auf Windows-Betriebssystemen unterstützt wird. Sie können nur eine Variante der Anwendung schreiben und unter Verwendung der IBM Storage Protect-Schnittstelle auf mehreren Betriebssystemen kompilieren. Wenn Sie eine neue Anwendung schreiben, verwenden Sie die Schnittstelle IBM Storage Protect.

Wenn Sie ein Upgrade einer vorhandenen Anwendung durchführen:

  1. Konvertieren Sie die dsmXXX -Funktionsaufrufstrukturen und -Aufrufe in die IBM Storage Protect .
  2. Migrieren Sie vorhandene Dateibereiche
  3. Sichern Sie neue Dateibereiche mit der Einstellung true für das Flag useUnicode
Hinweis: Nachdem Sie einen Unicode-fähigen Client für den Zugriff auf einen Knoten verwendet haben, können Sie keine Verbindung zu demselben Knotennamen mit einer älteren Version der API oder einer API von einem anderen Betriebssystem herstellen. Wenn Ihre Anwendung plattformübergreifende Funktionalität verwendet, dürfen Sie das Flag Unicode nicht verwenden. Es gibt keine plattformübergreifende Unterstützung zwischen Unicode- und Nicht-Unicode-Betriebssystemen.

Wenn Sie das Flag useUnicode aktivieren, werden alle Zeichenfolgestrukturen als Unicode-Zeichenfolgen behandelt. Auf dem Server sind nur die folgenden Felder wahre Unicode-Felder:

  • Dateibereichsname
  • Obere Ebene
  • Untere Ebene
  • Archivierungsbeschreibung

Alle übrigen Felder werden in MBCS in der lokalen Codepage konvertiert, bevor sie an den Server gesendet werden. Felder wie Knotenname sind wchar-Zeichenfolgen. Sie müssen in der aktuellen Ländereinstellung gültig sein. Sie können beispielsweise auf einem japanischen System Dateien mit chinesischen Namen sichern, der Knotenname muss jedoch eine gültige japanische Zeichenfolge sein. Die Optionsdatei bleibt in der aktuellen Codepage. Wenn Sie eine Unicode-Einschluss-/Ausschlussliste erstellen müssen, verwenden Sie die Option inclexcl mit einem Dateinamen und erstellen Sie eine Unicode-Datei mit darin enthaltenen Unicode-Mustern.