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