GET SAME [(r)]
|
GET SAME [(r)] [operand1
|
Dieser Abschnitt behandelt folgende Themen:
Eine Erläuterung der in dem Syntax-Diagramm verwendeten Symbole entnehmen Sie dem Abschnitt Syntax-Symbole.
Verwandte Statements: ACCEPT/REJECT |
AT BREAK | AT START OF DATA | AT END OF DATA | BACKOUT TRANSACTION | BEFORE
BREAK PROCESSING | DELETE | END
TRANSACTION | FIND |
GET | GET TRANSACTION DATA | HISTOGRAM | LIMIT | PASSW
| PERFORM BREAK PROCESSING | READ | RETRY | STORE | UPDATE
Gehört zur Funktionsgruppe: Datenbankzugriffe und Datenbankänderungen
Das Statement GET SAME dient dazu, einen Datensatz, der gerade verarbeitet
wird, erneut zu lesen. Das Statement wird in der Regel dazu verwendet, Werte von
Datenbank-Arrays (Periodengruppen oder multiplen Feldern) zu erhalten, falls die Nummer(n)
und der Bereich der vorhandenen bzw. gewünschten Ausprägung(en) nicht bekannt war, als der
Datensatz zum erstenmal gelesen wurde.
Das Statement GET SAME ist nur beim Zugriff auf Adabas- oder
VSAM-Datenbanken gültig.
Mit Entire System Server ist dieses Statement nicht verfügbar.
Bei VSAM-Datenbanken gilt GET SAME nur für ESDS und RRDS. Für ESDS muss
die RBA in einer numerischen Benutzervariablen enthalten sein oder als
Ganzzahl-Konstante angegeben werden. Dasselbe gilt für RRDS, außer dass hier statt der
RBA die RRN angegeben werden muss.
Bei einem UPDATE- oder DELETE-Statement darf keine Referenzierung
auf ein GET SAME-Statement erfolgen; vielmehr sollten diese Statements
das FIND-, READ- oder GET-Statement referenzieren, mit dem der betreffende
Datensatz ursprünglich gelesen wurde.
Operanden-Definitionstabelle:
| Operand | Mögliche Struktur | Mögliche Formate | Referenzierung erlaubt | Dynam. Definition | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| operand1 | S | A | A | U | N | P | B | nein | ja | |||||||||||
Syntax-Element-Beschreibung:
| Syntax-Element | Beschreibung |
|---|---|
(r) |
Statement-Referenz:
Die Notation
Falls keine Referenzierung erfolgt, bezieht sich das
|
operand1
|
Angabe der Felder:
Als operand1 geben Sie das Feld bzw. die Felder an,
deren Werte Sie mit dem Anmerkung |
** Example 'GSAEX1': GET SAME
************************************************************************
DEFINE DATA LOCAL
1 I (P3)
1 POST-ADDRESS VIEW OF EMPLOYEES
2 FIRST-NAME
2 NAME
2 ADDRESS-LINE (I:I)
2 C*ADDRESS-LINE
2 POST-CODE
2 CITY
*
1 #NAME (A30)
END-DEFINE
*
FORMAT PS=20
MOVE 1 TO I
*
READ (10) POST-ADDRESS BY NAME
COMPRESS NAME FIRST-NAME INTO #NAME WITH DELIMITER ','
WRITE // 12T #NAME
WRITE / 12T ADDRESS-LINE (I.1)
/*
IF C*ADDRESS-LINE > 1
FOR I = 2 TO C*ADDRESS-LINE
GET SAME /* READ NEXT OCCURRENCE
WRITE 12T ADDRESS-LINE (I.1)
END-FOR
END-IF
WRITE / POST-CODE CITY
SKIP 3
END-READ
END
Ausgabe des Programms GSAEX1:
Page 1 05-01-13 13:23:36
ABELLAN,KEPA
CASTELAN 23-C
28014 MADRID
ACHIESON,ROBERT
144 ALLESTREE LANE
DERBY
DERBYSHIRE
DE3 4TR DERBY