VL 4 spezielle Sprachelemente Flashcards
Erklären Sie die Anweisungen
TABLES: sflight.
SELECT SINGLE * FROM sflight WHERE carrid = ‘LH’ AND connid = 401.
Eine Abfrage der Datenbank sflight.
Wähle einen Tabellenzeile aus sflight wo carrid gleich ‘LH’ entspricht und connid gleich 401 ist.
Welche Aufgabe übernehmen interne Tabellen im ABAP?
-Interne Tabellen sind mehrdimensionale Datenkonstrukte, um im Kontext betriebswirtschaftliche Anwendungen und Datenbanken zu verarbeiten.
-Interne Tabellen können beliebig viele Zeilen + Zeilentyp (innerhalb der
Kapazitätsgrenzen des Systems) umfassen.
-Der Zeilentyp beliebig entsprechend der ABAP‐Typenhierarchie
gebildet werden mächtiges Werkzeug.
-beliebiger Referenzen zu Tabellentypen der angeschlossenen
Datenbank, entspricht keine physikalische Tabelle in der Datenbank, da die internen Tabellen zur Laufzeit angelegt werden
Was ist hier falsch? Markieren Sie die Fehler (6) bitte durch z.B. Einkreisen.
TYPES: BEGINN OF t_fp, carrid TYPE sflight‐carrid, connid TYPE sflight‐connid, fldate TYPE sflight‐fldate, price TYPE sflight_price, currency TYPE sflight‐currency END OF t_fp. DATA: it_fpl TYPE STANDARD TABLE OF t_fp, wa_fpl TYPE TABLE OF t_fp.
Was ist eine Feldleiste (working area) und
wozu benötigen Sie sie im Zusammenhang mit internen Tabellen?
- interne Tabellen besitzen keine Indices, deswegen wird ein Arbeitsbereich verwendet
- Work Area entspricht einer Zeile in einer Tabelle und wird meistens durch eine Struktur definiert, enthält die aktuell bearbeitete Tabellenzeile
Anstelle von Feldleisten können auch Feldsymbole (FIELD SYMBOLS)
verwendet werden.
Was sind FIELD SYMBOLS?
Worin besteht der Unterschied zu Feldleisten?
- damit kann Zeitaufwand für Transport und Zugriff beim Kopieren von Daten umgangen werden
- Feldsymbole dienen dem dynamischen Zugriff auf Datenobjekte in ABAP-Programme, erst zur Laufzeit bekannt
- Feldsymbole sind Platzhalter für bestehende Datenobjekte. Reserviert kein Speicherplatz, ist eine Art virtueller Beschreiber(Zeiger auf…), wird erst zur Laufzeit implementiert
Warum müssen Sie 2 oder mehr Tabellen in einem SELECT verbinden?
Weil die Tabellen ausgewählt werden müssen die verknüpft werden sollen.
Beispielsweise man will die Tabellen von der Datenbank X verbinden mit den Tabellen aus der Datenbank Y, dann würde ein Befehl z.B so folgen:
SELECT h1 AND h2 FROM X [INNER] JOIN Y ON Y~h1 = X~h1 AND Y~h2 = X~h2 INTO CORRESPONDING FIELDS OF TABLE XY
Man nutzt dies beispielsweise zum Zusammenführen von identischen Daten, die sich in 2 Daten-banktabellen doppeln und zur Erweiterung der Tabellen.
Was ist der Tabellenschlüssel?*
Es gibt:
-strukturierter Zeilentyp: .. WITH [NON‐]UNIQUE KEY comp … .
Mehrere Schlüssel werden dabei reihenfolgemäßig abgearbeitet
-beliebiger Zeilentyp: .. WITH [NON‐]UNIQUE KEY table_line
-Standardschlüssel: …. WITH [NON‐]UNIQUE DEFAULT KEY.
Bei strukturierten Tabellen aus allen nicht numerischen, flachen Feldern
Wie deklariert man eine Tabelle mit expliziter Zeilentyp-Typisierung?*
1.explizite Zeilentyp‐Typisierung: TYPES: BEGIN OF t_zeilentyp, dobj1 TYPE dtype, dobj1 TYPE dtype, . . . END OF t_zeilentyp .
Wie deklariert man eine Tabelle explizit?*
DATA it_itab TYPE TABLE OF t_itab.