UPDATE [RECORD ] [IN ] [STATEMENT ] [(r)]
|
UPDATE
|
[RECORD ]
[IN ] [STATEMENT ] [(r)]
|
|||||
SET
|
||||||
WITH
|
SAME
[RECORD ]
|
|||||
USING
|
{operand1= operand2}
|
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
|
RETRY
|
STORE
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
Sourcecode-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.
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
|
---|---|
XML |
Bei XML-Datenbanken steht das |
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:
(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.