Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

DELAIX - Sekundärschlüssel einer ISAM-Datei löschen

Makrotyp: S-Typ (E-Form/L-Form/D-Form/C-Form) (siehe "Typen von Makroaufrufen")

Der Makro DELAIX löscht in einer NK-ISAM-Datei die vom Anwender ausgewählten oder alle Sekundärschlüssel.

Löschen eines Sekundärschlüssels bedeutet nicht, dass die Werte dieses Schlüssels in den Datensätzen gelöscht werden. Es werden vielmehr die zum Sekundärschlüssel gehörenden Sekundärindexblöcke gelöscht, sodass über diesen Sekundärschlüssel nicht mehr auf Datensätze zugegriffen werden kann.

Format

Operation

Operanden

DELAIX

,KEYNAME = (keyname1[,keyname2,...]) / *ALL

,FILE = pfadname / LINK = linkname

MF = L

MF = E,PARAM = adr / (r)

MF = D[,PREFIX = pre]

MF = C[,PREFIX = pre][,MACID = macid]

Operandenbeschreibung

FILE = pfadname

Bezeichnet die NK-ISAM-Datei, deren im Operanden KEYNAME angegebenen Sekundärschlüssel gelöscht werden sollen, mit: <c-string 1..54: filename 1..54>

Die Angabe im FILE-Operanden wird ignoriert, wenn zugleich der LINK-Operand angegeben ist.

Pfadname bedeutet [:catid:][$userid.]dateiname

catid
Katalogkennung: falls nicht angegeben, wird die Default-Catid der Benutzerkennung angenommen.

userid
Benutzerkennung: falls nicht angegeben, wird die Benutzerkennung des SET-LOGON-PARAMETERS- bzw. des LOGON-Kommandos angenommen.

dateiname
vollqualifizierter Dateiname

KEYNAME

legt fest, welche Sekundärschlüssels gelöscht werden sollen.

= (keyname1[,keyname2,...])
Es werden alle Sekundärschlüssel gelöscht, deren Namen in der Liste aufgeführt sind. Die Sekundärschlüssel mit den Namen „keyname1“, „keyname2“ usw. müssen für die im Operanden FILE bzw. LINK angegebene Datei definiert sein. Über die Namen und Attribute aller für eine Datei vereinbarten Sekundärschlüssel kann sich der Anwender mit dem Makro SHOWAIX bzw. dem Kommando SHOW-INDEX-ATTRIBUTES informieren.
Die runden Klammern in dieser Angabe können weggelassen werden, wenn die Liste nur einen Namen enthält.

= *ALL
Es werden alle Sekundärschlüssel gelöscht, die für die im Operanden FILE bzw. LINK angegebene Datei definiert sind.

LINK = linkname

Legt den Dateikettungsnamen der Datei fest, deren im Operanden KEYNAME angegebenen Sekundärschlüssel gelöscht werden sollen.
„linkname“ darf bis zu acht Zeichen lang sein. Soll der Dateikettungsname über die Kommandoschnittstelle ansprechbar sein, muss er dem Datentyp <structured_name 1..8> entsprechen (siehe Handbuch „Kommandos“ [3]).

MACID

legt jeweils das zweite bis einschließlich vierte Zeichen der Feldnamen und Equates fest, die bei der Makroauflösung generiert werden.

Voreinstellung:         MACID = IST

= macid
„macid“ ist eine drei Zeichen lange Zeichenfolge, die jeweils das zweite bis vierte Zeichen der generierten Feldnamen und Equates festlegt.

PARAM

bezeichnet die Adresse der Operandenliste und wird nur in Verbindung mit MF=E ausgewertet (siehe auch "Typen von Makroaufrufen")

= adr
adr ist die symbolische Adresse (der Name) der Operandenliste.

= (r)
r ist die Nummer des Registers, das die Adresse der Operandenliste enthält. Vor dem Makroaufruf muss das Register mit diesem Adresswert geladen werden.

PREFIX

legt das jeweils erste Zeichen der Feldnamen und Equates fest, die bei der Makroauflösung generiert werden.

Voreinstellung:         PREFIX = D

= pre
„pre“ ist ein Zeichen langes Präfix, mit dem die generierten Feldnamen und Equates beginnen sollen. 

Returncodes

Standardheader: 00bbaaaa

Über die Ausführung des Makros DELAIX wird im Standardheader folgender Returncode übergeben (bb = SUBCODE1, aaaa = MAINCODE):

X'bb'

X'aaaa'

Erläuterung

X'00'

X'0000'

Funktion erfolgreich ausgeführt.

X'01'

X'0001'

Die Funktion konnte nicht ausgeführt werden: Die Operandenliste ist nicht verfügbar.

X'40'

X'0002'

Die Funktion konnte nicht ausgeführt werden: Sekundärschlüssel werden im fernen System nicht unterstützt (bei Makroaufruf über RFA).

X'40'

X'0003'

Die Funktion konnte nicht ausgeführt werden: Die angegebene Katalogkennung existiert nicht.

X'40'

X'0004'

Die Funktion konnte nicht ausgeführt werden: Auf den Katalog kann nicht zugegriffen werden.

X'01'

X'0005'

Die Funktion konnte nicht ausgeführt werden: Die Operandenliste enthält einen ungültigen Namen.

X'40'

X'0008'

Die Funktion konnte nicht ausgeführt werden: Der angegebene Sekundärschlüssel existiert nicht.

X'20'

X'000B'

Die Funktion konnte nicht ausgeführt werden: Systemfehler.

X'40'

X'000C'

Die Funktion konnte nicht ausgeführt werden: Der Benutzeradressraum ist zu klein.

X'40'

X'000E'

Die Funktion konnte nicht ausgeführt werden: Der Kontrollblock der Datei ist fehlerhaft.

X'40'

X'0012'

Die Funktion konnte nicht ausgeführt werden: Der ISAM-Pool ist überlastet.

X'40'

X'0016'

Die Funktion konnte nicht ausgeführt werden: Für KEYNAME wurde eine ungültige Anzahl von Schlüsselnamen angegeben.

X'01'

X'0017'

Die Funktion konnte nicht ausgeführt werden: In der Operandenliste wurde keine Datei spezifiziert.

X'40'

X'0018'

Die Funktion konnte nicht ausgeführt werden: Zum Zeitpunkt des Makroaufrufs ist SHARUPD=YES eingestellt.

X'40'

X'0019'

Die Funktion konnte nicht ausgeführt werden: Der Dateikettungsname ist fehlerhaft.

X'40'

X'0040'

Die Funktion konnte nicht ausgeführt werden: OPEN-Fehler.

X'40'

X'0041'

Die Funktion konnte nicht ausgeführt werden: CLOSE-Fehler.

X'40'

X'0044'

Die Funktion konnte nicht ausgeführt werden: Die Datei ist keine NK-ISAM-Datei.

Weitere Returncodes, deren Bedeutung durch Konvention makroübergreifend festgelegt ist, können der Tabelle „Standardheader" entnommen werden. 

Das aufrufende Programm wird beendet, wenn bezüglich der Parameterliste folgende Fehler auftreten:

  • Die Liste ist dem Aufrufer nicht zugewiesen.

  • Die Liste ist nicht auf Wortgrenze ausgerichtet.

  • Die Liste ist gegen Schreibzugriff geschützt.