Basisdatenbankdateien für iSeriesC-Programme definieren

Beim Vorbereiten von EGL-Programmen und Daten für die Verwendung mit Basisdatenbankdateien in der iSeriesC-Zielumgebung müssen Sie eine Reihe von Problemstellungen beachten.

EGL-Datensatzorganisation auf Dateien in IBM i anwenden

Bei EGL-Programmen wird das Dateisystem von IBM® i zum Implementieren von E/A-Anweisungen für EGL-Dateien verwendet. Im Dateisystem von IBM i werden physische Dateien und einfache logische Dateien unterstützt. Physische Dateien enthalten die tatsächlichen auf dem System gespeicherten Daten. Einfache logische Dateien stellen eine Ansicht der Daten von einer physischen Datei dar. Die folgende Tabelle enthält die EGL-Datensatzstereotypen, in denen Datei-E/A-Anweisungen und die entsprechenden iSeriesC-Dateitypen unterstützt werden. Wählen Sie den EGL-Datensatzstereotyp aus, der am besten zu dem Programm passt, dass derzeit entwickelt wird. Nähere Informationen zum Verwenden physischer und logischer Dateien finden Sie in der Dokumentation zu IBM i.

Tabelle 1. EGL-Datensatzstereotypen und empfohlene iSeriesC-Dateitypen
EGL-Datensatzstereotyp iSeries-Dateityp
IndexedRecord Physische Datei oder logische Datei
RelativeRecord Physische Datei
SerialRecord Physische Datei

Dateien erstellen und benennen

In EGL müssen alle Dateien, auf die von dem Programm zugegriffen wird, auf dem System vorhanden sein, bevor EGL-E/A-Anweisungen auf die Dateien angewendet werden. Mit den Datei-E/A-Anweisungen werden keine Dateien für den Programmbenutzer erstellt.

Die Namen von Dateien, die von einem Programm als Namen von Systemressourcen verwendet werden, werden während der Generierung angegeben. Der Standardressourcenname für eine Datei ist der Name, den Sie während der Datensatzdefinition zugewiesen haben. Sie können den Standardnamen in einen anderen Namen ändern. Sie können auch explizit einen Dateinamen angeben, indem Sie mithilfe der Formularbibliothek/des Formulardateinamens einen Bibliotheksnamen festlegen. Wenn Sie nicht explizit einen Dateinamen angeben, wird in EGL nach der Datei in der Bibliotheksliste (*LIBL) gesucht, wenn das Programm in der iSeriesC-Umgebung ausgeführt wird.

Legen Sie die Erstellungsdeskriptoroption 'genDDSFile' auf YES fest, wenn Sie möchten, dass in EGL die Informationen zu den DDS (Data Description Specifications = Datenbeschreibungsspezifikationen) auf der seriellen, indizierten oder relativen Datensatzdefinition basierend generiert wird.

Anmerkung: Sie können auch andere Methoden zum Erstellen der Dateien verwenden, zum Beispiel das Interactive Data Definition Utility und SQL. Da jedoch DDS die am häufigsten verwendete Methode ist, wird diese hier verwendet.

Um eine physische Datei zu erstellen, verwenden Sie den Befehl zum Erstellen einer physischen Datei (CRTPF). Sie können physische Dateien mit relativen und seriellen EGL-Datensatzstereotypen mit oder ohne DDS-Quelleninformationen erstellen. Dateien mit den relativen und seriellen Datensatzstereotypen sind eingangsadressierte Dateien. Wenn Sie die DDS-Quelleninformationen nicht zum Erstellen dieser Dateien verwenden, müssen Sie die Datensatzlänge für die Datei mithilfe des Parameters RCDLEN im Befehl CRTPF angeben.

Verwenden Sie die in EGL bereitgestellten DDS-Quelleninformationen zum Erstellen physischer und logischer Dateien mit EGL-indiziertem Datensatzstereotyp. Verwenden Sie den Befehl CRTPF zum Erstellen physischer Dateien und den Befehl CRTLF zum Erstellen logischer Dateien. Dateien mit dem indizierten Datensatzstereotyp sind schlüsseladressierte Dateien. In den DDS-Quelleninformationen werden die Mittel zum Angeben der Schlüsselfelder bereitgestellt.

Datenbankdateien gemeinsam nutzen

In EGL-Programmen können die Datensatzposition oder der Verweis einer Datei in einem anderen Programm oder in einem Programm im selben Job gemeinsam genutzt werden. Verwenden Sie den Parameter SHARE(*YES) in den Dateibefehlen [[[IBM i]]]] CREATE, CHANGE oder OVERRIDE zum gemeinsamen Nutzen von Dateien. Mit SHARE(*NO) wird die Unabhängigkeit der Datensatzposition innerhalb der Datei für jedes Programm beibehalten, mit dem auf die Datei zugegriffen wird.

Initialisierung relativer Datensatzdateien

Initialisieren Sie Teildateien, die den relativen EGL-Datensatzstereotypen entsprechen, bevor Sie versuchen, diese zu verwenden. Relative Datensatzdateien werden in der iSeriesC-Umgebung mithilfe physischer Dateien dargestellt, deren Datensätze durch eine relative Datensatznummer abgerufen und verändert werden. Wenn Sie einer relativen Teildatei einen Datensatz hinzufügen oder in der Teildatei einen Datensatz aktualisieren, muss in der Teildatei ein Bereich für den Datensatz vorhanden sein. Bei einer Aktualisierung muss es sich bei diesem Bereich um einen gültigen und vorhandenen Datensatz handeln. Bei einem neuen Datensatz muss es sich bei diesem Bereich um einen gelöschten Datensatz handeln. Verwenden Sie den Befehl INZPFM (Initialize Physical File Member) zum Initialisieren von Datensätzen für relative Teildateien.

Hinweise zu Datensatzsperren

Mit der EGL-Anweisung 'GET...FORUPDATE' wird ein Datensatz von einer Datei ausgelesen und der Datensatz mit exklusiven Leserechten gesperrt. Das bedeutet, dass dieser Datensatz von keinem anderen Benutzer aktualisiert werden kann, bis der Benutzer, der den Datensatz gesperrt hat, den Datensatz mit einer anderen E/A-Anweisung als 'GET...FORUPDATE' wieder freigibt. Wenn ein Benutzer versucht, einen Datensatz zu aktualisieren, der bereits von einem anderen Benutzer aktualisiert wird, tritt der EGL-Fehler 'deadlock' auf.

In EGL generierte Datenbeschreibungsspezifikationen verwenden

Wenn Sie die Erstellungsdeskriptoroption 'genDDSFile' auf YES festgelegt haben, können in EGL DDS-Informationen aus EGL-Datensatzdefinitionen generiert werden, die für Datei-E/A-Anweisungen verwendet werden.

Die in EGL generierten DDS-Informationen sind nur für Systemadministratoren oder Programmentwickler für IBM i nützlich. Der Systemadministrator kann die DDS-Quellenteildateien oder geänderte Versionen davon verwenden, um die Dateien zu erstellen, die in der iSeriesC-Umgebung noch nicht vorhanden sind. Durch die Verwendung der DDS-Quelleninformationen zum Erstellen der Dateien werden diese Dateien für Datenverwaltungsfunktionen in IBM i, zum Beispiel zum Angeben von Schlüsselfeldern, eindeutigen Schlüsseln oder logischen Dateien qualifiziert.

Sie müssen die DDS-Quelleninformationen nicht verwenden, um Dateien zu erstellen, da in EGL nicht erforderlich ist, dass die Dateien, auf die in einem Programm zugegriffen wird, extern beschrieben sind. EGL verlässt sich für die Struktur eines Datensatzes auf die Datensatzdefinition, die in das Objekt *PGM integriert ist. Durch die Verwendung der DDS-Informationen wird eine Vereinbarung zwischen der Art, in der die Datensatzstruktur im Programm definiert ist, und den in der iSeriesC-Umgebung gespeicherten Datensatzdaten garantiert.

Einschränkungen bei logischen Dateien

In EGL werden einfache logische Dateien mit nur einem Datensatzformat unterstützt. In den DDS-Quelleninformationen wird nur eine Datei mit dem Schlüsselwort PFILE angegeben. Weitere Informationen zur Verwendung von DDS-Schlüsselwörtern finden Sie im i5/OS Information Center.


Feedback