STORE
|
[RECORD ] [IN ] [FILE ] view-name
|
|||||
[PASSWORD = operand1]
|
||||||
[CIPHER = operand2]
|
||||||
USING
|
NUMBER operand3
|
|||||
GIVING
|
STORE
|
[RECORD ] [IN ] [FILE ]
view-name
|
|||||
[PASSWORD = operand1]
|
||||||
[CIPHER = operand2]
|
||||||
USING
|
NUMBER
operand3
|
|||||
GIVING
|
||||||
[USING ]
SAME [RECORD ] [AS ] [STATEMENT [(r)]]
|
||||||
SET
|
[operand4=operand5] | |||||
WITH
|
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 SAME
|
GET TRANSACTION DATA
|
HISTOGRAM
|
LIMIT
|
PASSW
|
PERFORM BREAK PROCESSING
| READ
| |
READLOB
|
RETRY
|
UPDATE
| |
UPDATELOB
Gehört zur Funktionsgruppe: Datenbankzugriffe und Datenbankänderungen
Das Statement STORE
dient dazu, auf einer Datenbank
einen Datensatz hinzuzufügen.
Adabas | Die Natural-Systemvariable
*ISN enthält
die Adabas ISN, die dem neuen Datensatz als Ergebnis der Ausführung des
STORE -Statements zugewiesen wurde. Eine anschließende Referenz auf
*ISN muss die Statement-Nummer des betreffenden
STORE -Statements enthalten.
|
DL/I |
Mit dem Ist der Datensatz mit einem Primärschlüssel definiert, so muss ein Wert für das Primärschlüssel-Feld angegeben werden. Bei einer GSAM-Datenbank müssen neue Datensätze am Ende der Datenbank hinzugefügt werden (aufgrund von GSAM-Beschränkungen). Die Natural-Systemvariable
|
SQL |
Mit dem Das Die Natural-Systemvariable
|
VSAM |
Ist der Datensatz mit einem Primärschlüssel definiert, so muss ein Wert für das Primärschlüssel-Feld angegeben werden. Die Natural-Systemvariable enthält die Adabas-ISN bzw.
VSAM-RBA oder -RRN, die dem neuen Datensatz als Ergebnis der
Bei VSAM-Dateien gilt |
Operanden-Definitionstabelle:
Operand | Mögliche Struktur | Mögliche Formate | Referenzierung erlaubt | Dynam. Definition | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
operand1 | C | S | A | ja | nein | |||||||||||||||
operand2 | C | S | N | ja | nein | |||||||||||||||
operand3 | C | S | N | P | B * | nein | ja | |||||||||||||
operand4 | S | A | A | N | P | I | F | B | D | T | L | nein | nein | |||||||
operand5 | C | S | A | A | N | P | I | F | B | D | T | L | ja | nein |
* Format B von operand3 kann nur mit einer Länge von kleiner gleich 4 benutzt werden.
Syntax-Element-Beschreibung:
Syntax-Element | Beschreibung |
---|---|
view-name
|
Als view-name geben Sie den
Namen eines Views an, der entweder in einem Im Reporting Mode ist view-name
der Name eines DDM, falls kein |
PASSWORD=operand1
|
Die Sie dient dazu, ein Passwort (operand1) anzugeben, um Daten auf einer passwortgeschützten Datei speichern zu können. Das Passwort (operand1) kann als eine alphanumerische Konstante oder als eine alphanumerische Variable angegeben werden. Es kann aus bis zu 8 Zeichen bestehen und darf keine Sonderzeichen oder eingebettete Leerzeichen enthalten. Wenn das Passwort als eine Konstante angegeben wird, muss es in Apostrophen stehen. |
CIPHER= operand2
|
Die Diese Klausel wird benutzt, um einen Chiffrierschlüssel (operand2) bei der Aktualisierung von Daten einer Datei anzugeben, die verschlüsselt ist. Der Chiffrierschlüssel (operand2) kann als eine numerische Konstante mit 8 Stellen oder als eine Benutzervariable mit Format/Länge N8 angegeben werden. Weitere Informationen siehe das Statement
|
USING NUMBER operand3
oder GIVING NUMBER
operand3
|
Diese Klausel kann nur bei Adabas- und VSAM-Datenbanken benutzt werden. Bei VSAM-Datenbanken gilt sie nur für VSAM-RRDS, wobei die vom Benutzer angegebene RRN (Relative Record Number) der ISN entspricht. Mit dieser Klausel können Sie für einen zu speichernden
Datensatz eine eigene Adabas-ISN angeben. Ist die angegebene ISN bereits
vergeben, wird das Programm abgebrochen und eine entsprechende Fehlermeldung
ausgegeben, es sei denn, es ist eine |
SET/WITH
operand4=operand5 |
Mit dieser Klausel können im Reporting Mode die Felder
angegeben werden, für die Werte gespeichert werden sollen. Jedes in der Datei
definierte Feld, das in der Diese Klausel ist nicht erlaubt, wenn ein
Hinweise für DL/I:
Ein Segment mit variabler Länge wird mit der Länge
gespeichert, die mindestens benötigt wird, um alle im
|
USING SAME
(r)
|
Diese Klausel bewirkt im Reporting Mode, dass dieselben
Feldwerte, die mit dem Diese Klausel ist nicht erlaubt, wenn ein
|
** Example 'STOEX1S': STORE (structured mode) ** ** CAUTION: Executing this example will modify the database records! ************************************************************************ DEFINE DATA LOCAL 1 EMPL-VIEW VIEW OF EMPLOYEES 2 PERSONNEL-ID 2 NAME 2 FIRST-NAME 2 MAR-STAT 2 BIRTH 2 CITY 2 COUNTRY * 1 #PERSONNEL-ID (A8) 1 #NAME (A20) 1 #FIRST-NAME (A15) 1 #BIRTH-D (D) 1 #MAR-STAT (A1) 1 #BIRTH (A8) 1 #CITY (A20) 1 #COUNTRY (A3) 1 #CONF (A1) END-DEFINE * REPEAT INPUT 'ENTER A PERSONNEL ID AND NAME (OR ''END'' TO END)' // 'PERSONNEL-ID : ' #PERSONNEL-ID // 'NAME : ' #NAME / 'FIRST-NAME : ' #FIRST-NAME /* /* VALIDATE ENTERED DATA /* IF #PERSONNEL-ID = 'END' OR #NAME = 'END' STOP END-IF IF #NAME = ' ' REINPUT WITH TEXT 'ENTER A LAST-NAME' MARK 2 AND SOUND ALARM END-IF IF #FIRST-NAME = ' ' REINPUT WITH TEXT 'ENTER A FIRST-NAME' MARK 3 AND SOUND ALARM END-IF /* /* ENSURE PERSON IS NOT ALREADY ON FILE /* FIND NUMBER EMPL-VIEW WITH PERSONNEL-ID = #PERSONNEL-ID IF *NUMBER > 0 REINPUT 'PERSON WITH SAME PERSONNEL-ID ALREADY EXISTS' MARK 1 AND SOUND ALARM END-IF MOVE 'N' TO #CONF /* /* GET FURTHER INFORMATION /* INPUT 'ADDITIONAL PERSONNEL DATA' //// 'PERSONNEL-ID :' #PERSONNEL-ID (AD=IO) / 'NAME :' #NAME (AD=IO) / 'FIRST-NAME :' #FIRST-NAME (AD=IO) /// 'MARITAL STATUS :' #MAR-STAT / 'DATE OF BIRTH (YYYYMMDD) :' #BIRTH / 'CITY :' #CITY / 'COUNTRY (3 CHARACTERS) :' #COUNTRY // 'ADD THIS RECORD (Y/N) :' #CONF (AD=M) /* /* ENSURE REQUIRED FIELDS CONTAIN VALID DATA /* IF NOT (#MAR-STAT = 'S' OR = 'M' OR = 'D' OR = 'W') REINPUT TEXT 'ENTER VALID MARITAL STATUS S=SINGLE ' - 'M=MARRIED D=DIVORCED W=WIDOWED' MARK 1 END-IF IF NOT (#BIRTH = MASK(YYYYMMDD) AND #BIRTH = MASK(1582-2699)) REINPUT TEXT 'ENTER CORRECT DATE' MARK 2 END-IF IF #CITY = ' ' REINPUT TEXT 'ENTER A CITY NAME' MARK 3 END-IF IF #COUNTRY = ' ' REINPUT TEXT 'ENTER A COUNTRY CODE' MARK 4 END-IF IF NOT (#CONF = 'N' OR= 'Y') REINPUT TEXT 'ENTER Y (YES) OR N (NO)' MARK 5 END-IF IF #CONF = 'N' ESCAPE TOP END-IF /* /* ADD THE RECORD /* MOVE EDITED #BIRTH TO #BIRTH-D (EM=YYYYMMDD) /* EMPL-VIEW.PERSONNEL-ID := #PERSONNEL-ID EMPL-VIEW.NAME := #NAME EMPL-VIEW.FIRST-NAME := #FIRST-NAME EMPL-VIEW.MAR-STAT := #MAR-STAT EMPL-VIEW.BIRTH := #BIRTH-D EMPL-VIEW.CITY := #CITY EMPL-VIEW.COUNTRY := #COUNTRY /* STORE RECORD IN EMPL-VIEW /* END OF TRANSACTION /* WRITE NOTITLE 'RECORD HAS BEEN ADDED' /* END-REPEAT END
Ausgabe des Programms STOEX1S
:
ENTER A PERSONNEL ID AND NAME (OR 'END' TO END) PERSONNEL-ID : 90001100 NAME : JONES FIRST-NAME : EDWARD
Nach der Eingabe und Bestätigung der Personal-Schlüsseldaten werden zusätzliche Personal-Daten zur Eingabe angezeigt:
ADDITIONAL PERSONNEL DATA PERSONNEL-ID : 90001100 NAME : JONES FIRST-NAME : EDWARD MARITAL STATUS : DATE OF BIRTH (YYYYMMDD) : CITY : COUNTRY (3 CHARACTERS) : ADD THIS RECORD (Y/N) : N
Äquivalentes Reporting-Mode-Beispiel: STOEX1R
.