GET SAME [(r)]
|
GET SAME [(r)]
[operand1
]
|
Dieses Dokument 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:
( 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