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