Rheinwerk < openbook > SAP-Wissen aus erster Hand
SAP-Wissen aus erster Hand.
 
Inhaltsverzeichnis
Vorwort zur vierten Auflage
1 ABAP und die ersten Schritte im SAP-System
2 ABAP Dictionary
3 Programmieren im ABAP Editor
4 Felder und Berechnungen
5 Modifikation von Zeichenketten
6 Debugging von Programmen
7 Modifikation von transparenten Datenbanktabellen
8 Rechnen mit Datum und Zeit, Mengen und Währungen
9 Mit Daten in einer Datenbanktabelle arbeiten
10 Programmablaufsteuerung und logische Ausdrücke
11 Selektionsbildschirme
12 Interne Tabellen
13 Modularisierung von Programmen
14 Weiterführende Themen
A Icons auf einen Blick
B Abkürzungsverzeichnis
C Die Autoren
Stichwortverzeichnis

Download:
- Beispielprogramme, ca. 23 KB

Buch bestellen
Ihre Meinung?

Spacer
<< zurück
Einstieg in ABAP von Karl-Heinz Kühnhauser, Thorsten Franz
Buch: Einstieg in ABAP

Einstieg in ABAP
Pfeil 9 Mit Daten in einer Datenbanktabelle arbeiten
Pfeil 9.1 Berechtigungskonzept
Pfeil 9.2 Sperrkonzept
Pfeil 9.3 Open-SQL-Anweisungen
Pfeil 9.3.1 Neuen Datensatz anlegen
Pfeil 9.3.2 Bestehenden Datensatz ändern
Pfeil 9.3.3 Datensatz modifizieren
Pfeil 9.3.4 Datensatz löschen
Pfeil 9.4 Komfortable Alternative: Persistente Klassen
Pfeil 9.5 Codebeispiel zu INSERT
Pfeil 9.6 Codebeispiel zu UPDATE
Pfeil 9.7 Codebeispiel zu MODIFY
Pfeil 9.8 Codebeispiel zu DELETE
 
Zum Seitenanfang

9.8    Codebeispiel zu DELETE Zur vorigen ÜberschriftZur nächsten Überschrift

Abschließend zeigen wir Ihnen in Listing 9.4 die verschiedenen Möglichkeiten zum Löschen eines Datensatzes in einem Report.

 1  *&---------------------------------------------*
2 *& Report Z_TEILNEHMERLISTE09_DELETE *
3 *& *
4 *&---------------------------------------------*
5 *& *
6 *& *
7 *&---------------------------------------------*
8
9 REPORT z_teilnehmerliste09_delete.
10
11 * Korrekt: Workarea deklarieren
12 DATA: wa_zteilnehmer02 TYPE zteilnehmer02.
13
14 * Veraltet: Tabellenarbeitsbereich deklarieren
15 TABLES zteilnehmer02.
16
17 * Zeichenketten deklarieren
18 DATA: tnr TYPE zteilnehmer02-tnummer.
19
20 * Tabellenzeilen vor der Veränderung der Tabelle
21 SELECT * FROM zteilnehmer02 INTO wa_zteilnehmer02
22 ORDER BY PRIMARY KEY.
23 WRITE: / wa_zteilnehmer02-tnummer,
24 wa_zteilnehmer02-tname,
25 wa_zteilnehmer02-tgeburtsdatum,
26 wa_zteilnehmer02-tgeschlecht,
27 wa_zteilnehmer02-tkurspreis,
28 wa_zteilnehmer02-twaehrung,
29 wa_zteilnehmer02-zzkfztyp,
30 wa_zteilnehmer02-zzkurstitel.
31 ENDSELECT.
32 tnr = wa_zteilnehmer02-tnummer.
33 SKIP.
34
35 * Datensatz löschen aus Workarea
36 CLEAR: wa_zteilnehmer02, zteilnehmer02.
37 wa_zteilnehmer02-tnummer = tnr.
38 DELETE zteilnehmer02 FROM wa_zteilnehmer02.
39 WRITE: / 'Delete aus Workarea
liefert sy-subrc', sy-subrc.
40
41 * Datensatz löschen aus Tabellenarbeitsbereich
42 tnr = tnr - 1.
43 zteilnehmer02-tnummer = tnr.
44 DELETE zteilnehmer02.
45 WRITE: / 'Delete aus Tabellenarbeitsbereich liefert
sy-subrc', sy-subrc.
46
47 * Datensatz löschen mit Bedingung
48 DELETE FROM zteilnehmer02 WHERE zzkurstitel =
'Netzwerktechnik'.
49 WRITE: / 'Delete mit Bedingung liefert
sy-subrc', sy-subrc.
50
51 * Tabelleninhalt nach der Veränderung
52 SELECT * FROM zteilnehmer02 INTO wa_zteilnehmer02
53 ORDER BY PRIMARY KEY.
54 WRITE: / wa_zteilnehmer02-tnummer,
55 wa_zteilnehmer02-tname,
56 wa_zteilnehmer02-tgeburtsdatum,
57 wa_zteilnehmer02-tgeschlecht,
58 wa_zteilnehmer02-tkurspreis,
59 wa_zteilnehmer02-twaehrung,
60 wa_zteilnehmer02-zzkfztyp,
61 wa_zteilnehmer02-zzkurstitel.
62 ENDSELECT.
63
64 * Alle Datensätze der Tabelle löschen
65 DELETE FROM zteilnehmer02.
66 WRITE: / 'Delete aller Zeilen liefert
sy-subrc', sy-subrc.
67 SELECT * FROM zteilnehmer02 INTO wa_zteilnehmer02
68 ORDER BY PRIMARY KEY.
69 WRITE: / wa_zteilnehmer02-tnummer,
70 wa_zteilnehmer02-tname,
71 wa_zteilnehmer02-tgeburtsdatum,
72 wa_zteilnehmer02-tgeschlecht,
73 wa_zteilnehmer02-tkurspreis,
74 wa_zteilnehmer02-twaehrung,
75 wa_zteilnehmer02-zzkfztyp,
76 wa_zteilnehmer02-zzkurstitel.
77 ENDSELECT.

Listing 9.4    Report Z_TEILNEHMERLISTE09_DELETE

Anmerkungen zum Quellcode

Bis Zeile 34 sind Ihnen die Codezeilen wiederum bereits aus den vorangehenden Beispielen bekannt.

Zeile 36 und 37

Das Schlüsselfeld für den zu löschenden Satz soll in der Workarea eingetragen werden; deshalb wird diese initialisiert. Anschließend wird die Teilnehmernummer des zuletzt gelesenen Satzes als Schlüsselfeld in die Workarea eingetragen.

Zeile 38 und 39

Der entsprechende Satz mit diesem Schlüssel wird in der Datenbanktabelle gesucht und gelöscht. Zur Kontrolle wird der Returncode in der Liste ausgegeben.

Zeile 42 und 43

Der Schlüssel für den nächsten zu löschenden Satz wird ermittelt und in den Tabellenarbeitsbereich gestellt.

Zeile 44 und 45

Der entsprechende Satz der Datenbanktabelle wird gelöscht. Die Kontrollausgabe von SY-SUBRC erfolgt wieder in der Liste.

Zeile 48

Es soll nicht nur ein Satz aus der Datenbanktabelle gelöscht werden, sondern alle Sätze, die die Bedingung erfüllen, dass im Feld ZZKURS-TITEL der Inhalt »Netzwerktechnik« steht. Falls im Literal 'Netzwerktechnik' (durch Vertippen) ein Mix aus Groß- und Kleinbuchstaben vorhanden ist oder im zugehörigen Feld des Satzes auf der Datenbank nur Großbuchstaben stehen, erzielt das Kommando keinen Treffer: Die Bedingung ist nicht erfüllt; es wird kein Satz gelöscht.

Zeile 65

Wir möchten noch einmal warnen: Vorsicht bei dieser Anweisung, denn alle Sätze der Datenbanktabelle werden gelöscht! Vergleichen Sie Zeile 48 mit Zeile 65; die Zeilen unterscheiden sich nur durch die Angabe einer Bedingung. Fehlt die Bedingung, schlägt das DELETE-Kommando gnadenlos zu. Ein leichtsinniger Fehler kann in der Praxis verheerende Folgen haben.

Zeile 67 bis 77

Als Test sollen die verbliebenen Sätze der Datenbanktabelle in die Liste geschrieben werden – im Beispiel ist es allerdings nur die leere Menge.

Ausgabe des Quellcodes

Ursprünglich waren im Beispiel sechs Sätze in der Datenbanktabelle vorhanden. Mit der ersten DELETE-Anweisung verschwand der letzte Satz, mit der zweiten Anweisung der vorletzte Satz. Durch die DELETE-Anweisung mit Bedingung wurden alle verbliebenen Sätze bis auf zwei gelöscht; die letzten beiden Sätze wurden mit dem Löschen aller Sätze entfernt. Die Datenbanktabelle hat danach keine Einträge mehr und ist vollkommen leer (siehe auch Abbildung 9.4).

Listbild zum DELETE-Beispiel

Abbildung 9.4    Listbild zum DELETE-Beispiel

 


Ihre Meinung?

Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de

<< zurück
 Zum Rheinwerk-Shop
Zum Rheinwerk-Shop: Einstieg in ABAP Einstieg in ABAP
Jetzt Buch bestellen

 Buchempfehlungen
Zum Rheinwerk-Shop: SAP – Der technische Einstieg
SAP – Der technische Einstieg


Zum Rheinwerk-Shop: ABAP Objects – Das umfassende Handbuch
ABAP Objects – Das umfassende Handbuch


Zum Rheinwerk-Shop: ABAP-Entwicklung für SAP S/4HANA
ABAP-Entwicklung für SAP S/4HANA


Zum Rheinwerk-Shop: Kundeneigene Erweiterungen mit ABAP
Kundeneigene Erweiterungen mit ABAP


Zum Rheinwerk-Shop: Schrödinger programmiert ABAP
Schrödinger programmiert ABAP


Zum Rheinwerk-Shop: Migration nach SAP S/4HANA
Migration nach SAP S/4HANA


Zum Rheinwerk-Shop: Design Thinking mit SAP
Design Thinking mit SAP


 Lieferung
Versandkostenfrei bestellen in Deutschland, Österreich und in die Schweiz
InfoInfo

 
 


Copyright © Rheinwerk Verlag GmbH 2020
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt.
Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

 
[Rheinwerk]

Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de

Cookie-Einstellungen ändern