UPDATE [RECORD] [IN] [STATEMENT] [(r)]
|
UPDATE
|
[RECORD] [IN] [STATEMENT] [(r)]
|
|||||
|
|
SET
|
|
||||
WITH
|
|
SAME
[RECORD]
|
|
|||
USING
|
{operand1=operand2} |
|||||
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 | STORE | UPDATELOB
Gehört zur Funktionsgruppe: Datenbankzugriffe und Datenbankänderungen
Das UPDATE-Statement dient dazu, die in der Datenbank gespeicherten Werte
eines oder mehrerer Felder eines Datensatzes zu verändern. Der betreffende Datensatz muss
vorher mit einem FIND-, GET- oder READ-Statement (oder bei Adabas auch mit einem
STORE-Statement) ausgewählt werden.
Das UPDATE-Statement bewirkt, dass jeder mit dem betreffenden FIND-Statement oder READ-Statement gelesene Datensatz in den
"Hold"-Status gestellt wird.
Die Hold-Logik ist im Leitfaden zur Programmierung beschrieben.
Das UPDATE-Statement darf nicht in derselben Quellcode-Zeile stehen wie
das Statement, mit dem der zu aktualisierende Datensatz ausgewählt wird.
Mit Entire System Server ist das UPDATE-Statement nicht verfügbar.
| VSAM |
VSAM-Primärschlüssel können aufgrund von VSAM-Beschränkungen nicht aktualisiert werden. |
| SQL |
Mit dem Auf Großrechnern werden nur Spalten (Felder) aktualisiert, die innerhalb des Programms geändert wurden, sowie Spalten, die außerhalb des Programms (z.B. als Eingabefelder in Maps) geändert worden sein könnten (aber nicht notwendigerweise auch geändert wurden). Auf allen anderen Plattformen werden alle Spalten aktualisiert. Bei den meisten SQL-Datenbanken kann eine mit |
Operanden-Definitionstabelle:
| Operand | Mögliche Struktur | Mögliche Formate | Referenzierung erlaubt | Dynam. Definition | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| operand1 | S | A | A | N | P | I | F | B | D | T | L | nein | nein | |||||||
| operand2 | C | S | A | A | N | P | I | F | B | D | T | L | ja | nein | ||||||
Syntax-Element-Beschreibung:
| Syntax-Element | Beschreibung |
|---|---|
(r)
|
Statement-Referenzierung:
Mit der Notation
Ist keine Anmerkung |
USING SAME
|
USING SAME-Klausel:
Diese Klausel ist nicht erlaubt, wenn ein Das Layout des Satzpuffers oder des Formatpuffers kann mit dem Mit Wenn das zu aktualisierende Feld ein Array-Bereich eines multiplen Feldes oder
einer Periodengruppe ist und Sie einen variablen Index für diesen Array-Bereich
verwenden, wird der zuletzt gültige Array-Bereich aktualisiert. Wenn die
Indexvariable modifiziert wird, nachdem der Datensatz gelesen wurde, aber bevor
das |
SET/WITH
operand1=operand2
|
SET/WITH-KLausel:
Mit dieser Klausel können Sie im Reporting Mode die Felder angeben, die geändert werden sollen, sowie die neuen Werte für diese Felder. Diese Klausel ist nicht erlaubt, wenn ein |
** Example 'UPDEX1S': UPDATE (structured mode)
**
** CAUTION: Executing this example will modify the database records!
************************************************************************
DEFINE DATA LOCAL
1 EMPLOY-VIEW VIEW OF EMPLOYEES
2 NAME
2 FIRST-NAME
2 CITY
*
1 #NAME (A20)
END-DEFINE
*
INPUT 'ENTER A NAME:' #NAME (AD=M)
IF #NAME = ' '
STOP
END-IF
*
FIND EMPLOY-VIEW WITH NAME = #NAME
IF NO RECORDS FOUND
REINPUT WITH 'NO RECORDS FOUND' MARK 1
END-NOREC
INPUT 'NAME: ' NAME (AD=O) /
'FIRST NAME:' FIRST-NAME (AD=M) /
'CITY: ' CITY (AD=M)
UPDATE
END TRANSACTION
END-FIND
*
END
Ausgabe des Programms SUBEX1S:
ENTER A NAME: BROWN
Nach Eingabe und Bestätigung des Namens:
NAME: BROWN FIRST NAME: KENNETH CITY: DERBY
Äquivalentes Reporting-Mode-Beispiel: UPDEX1R.