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 |
|
|
| |
| |
|
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.