ABAPLOOP_AT_DBTAB - LOOP AT DBTAB

Fill RESBD Structure from EBP Component Structure   ABAP Short Reference  
Diese Dokumentation steht unter dem Copyright der SAP AG.

LOOP AT dbtab

Kurzreferenz



Obsolete Syntax

LOOP AT { dbtab | *dbtab } [VERSION vers].
  ...
ENDLOOP.

Zusatz:

... VERSION vers

Wirkung

Die Anweisungen LOOP und ENDLOOP definieren eine in Klassen verbotene Schleife um einenAnweisungsblock. Für dbtab muss der Name einer Datenbanktabelle angegeben werden, dermit "T" beginnt und höchstens fünf Zeichen umfasst. Für die Datenbanktabelle dbtab muss mit der Anweisung TABLES einTabellenarbeitsbereich oder einzusätzlicher Tabellenarbeitsbereich deklariert sein.

Die Anweisung LOOP liest in jedem Schleifendurchlauf eine Zeile aus der Datenbanktabelle dbtabund weist deren Inhalt entweder dem Tabellenarbeitsbereich oder bei Angabe von *dbtab dem zusätzlichenTabellenarbeitsbereich zu. Welche Zeilen ausgelesen werden, wird durch den Inhalt der Komponenten des verwendeten Tabellenarbeitsbereichs, die denPrimärschlüsselfeldernder Datenbanktabelle dbtab entsprechen, bestimmt. Vor dem ersten Schleifendurchlauf wird derInhalt dieser Komponenten linksbündig als Suchschlüssel entnommen und es wird generischnach passenden Einträgen in der Datenbanktabelle gesucht. Leerzeichen werden dabei im Suchschlüssel so behandelt, als würden sie mit allen Werten übereinstimmen.

Wenn eine Datenbanktabelle angegeben ist, die nicht mit "T" beginnt, wird der erste Buchstabe implizit durch "T" ersetzt. Die Schleife wird nicht ausgeführt, wenn die Datenbanktabelle nicht vorhanden ist.

Systemfelder

sy-subrcBedeutung
12Die Datenbanktabelle wurde nicht gefunden.

Hinweise

  • In Unicode-Programmenmüssen alle Komponenten des Tabellenarbeitsbereichs, die Primärschlüsselfeldern der Datenbanktabelle dbtab entsprechen, zeichenartig sein.
  • Diese Form der LOOP-Schleife ist in Klassen verboten. Sie muss durch die SELECT-Anweisung ersetzt werden.
  • Die obsoleten Zugriffsanweisungen unterstützen keine automatischeMandantenbehandlung. DieMandantenkennungeiner Datenbanktabelle muss explizit angegeben werden. Dabei ist zu beachten, dass in Anwendungsprogrammen nur mit den Daten des aktuellen Mandanten gearbeitet werden soll. In Systemen mitMultitenancy wird dies von der ABAP-Laufzeitumgebung überprüft.


Zusatz

... VERSION vers

Wirkung

Wenn der Zusatz VERSION angegeben ist, wird nicht die Datenbanktabelle dbtab ausgelesen,sondern die Tabelle, deren Name sich aus "T" und dem Inhalt von vers zusammensetzt. Fürvers muss ein maximal vierstelliges Datenobjekt vom Typ c angegeben werden. Die Zeileninhaltewerden weiterhin dem Tabellenarbeitsbereich dbtab bzw. *dbtab zugewiesen, wobei auf dessen Typ gecastet wird. Wenn der Tabellenarbeitsbereich zu kurz ist, kommt es zu einem Laufzeitfehler.

Beispiel

Sequenzielles Auslesen von Zeilen aus der Datenbanktabelle T100.

TABLES t100.

t100 = space.
t100-sprsl = 'E'.
t100-arbgb = 'BC'.
t100-msgnr = '1'.

LOOP AT t100.
  ...
ENDLOOP.

Die stattdessen zu verwendende Open-SQL-Syntax lautet:

DATA wa TYPE t100.

SELECT *
       FROM t100
       INTO wa
       WHERE sprsl = 'E'  AND
             arbgb = 'BC' AND
             msgnr LIKE '1%'.
  ...
ENDSELECT.


Vendor Master (General Section)   SUBST_MERGE_LIST - merge external lists to one complete list with #if... logic for R3up  
Diese Dokumentation steht unter dem Copyright der SAP AG.


Length: 5664 Date: 20120526 Time: 214439     triton ( 291 ms )