Code: Alles auswählen.
SELECT * from eban INTO gt_banfl.
Hab jetzt das netz einmal umgegraben, aber finde beim besten Willen keine Erklärung warum das nicht funktioniert, zu mal diese Codezeile genau so vorgegeben wird.Als Arbeitsbereich ist eine interne Tabelle nicht erlaubt.
hilft das irgendwie weiter?Der Arbeitsbereich (bzw. die internen Tabelle) "GT_BANFL" ist nicht
flach oder enthält Referenzen oder interne Tabellen als Komponenten.
Code: Alles auswählen.
gt_banfl TYPE TABLE OF eban.
Code: Alles auswählen.
DATA: gt_banf1 TYPE STANDARD TABLE OF eban.
START-OF-SELECTION.
SELECT * FROM eban INTO TABLE gt_banf1.
Folgende Benutzer bedankten sich beim Autor sv07 für den Beitrag:
Thanatos82
und wie sah der Quellcode bei Dir aus? Ich kann den Fehler nicht so wirklich nachstellen...Thanatos82 hat geschrieben:Mit diesen Eingaben funktionierts...
mir ist zwar schleierhaft warum, aber es funktioniert!
Folgende Benutzer bedankten sich beim Autor Alexander D. für den Beitrag:
Thanatos82
Dann möchte ich auch eine Anmerkung loslassen. Select * muss nicht vermieden werden - aber du solltest dir halt Gedanken machen ob es der beste Ansatz ist.Alexander D. hat geschrieben:wenn ich noch eine Anmerkung loslassen darf: versuch solche Konstrukte wie SELECT * FROM so gut es geht zu vermeiden. Wie viele Felder benötigst du wirklich aus der EBAN? Definiere eine interne Tabelle die nur diese Felder beinhaltet und lese nur die Felder aus
Folgende Benutzer bedankten sich beim Autor black_adept für den Beitrag:
Thanatos82
ACK! Auf jeden Fall sollte man beide Wege kennen und sich für einen bewusst entscheiden. Aus meiner Erfahrung gibt es wenige Fälle mit berechtigtem Einsatz von SELECT *, das hängt aber sicherlich auch davon ab wo man ist und was man programmiertblack_adept hat geschrieben:Select * muss nicht vermieden werden - aber du solltest dir halt Gedanken machen ob es der beste Ansatz ist.
Wenn es auf Geschwindigkeit/Speicherverbraucht ankommt ist Alexanders Hinweis Gold wert - aber ich kenne genug andere Situationen, in denen ein Sternchen die Lesbarkeit oder die Erweiterbarkeit eines Programmes durchaus verbessert.
nicht ganz, du kommst auch ohne eine Struktur aus, anbei ein Beispiel:Thanatos82 hat geschrieben:Die eigene interne Tabelle über eine Struktur anlegen in der nur die Felder die ich brauche definiert sind, richtig?
Code: Alles auswählen.
TYPES: BEGIN OF t_eban,
banfn TYPE banfn,
bnfpo TYPE bnfpo,
ernam TYPE ernam,
erdat TYPE erdat,
txz01 TYPE txz01,
END OF t_eban.
"interne Tabelle über den Typ definieren
DATA: gt_eban TYPE STANDARD TABLE OF t_eban WITH DEFAULT KEY.
"eine WHERE-Bedingung ist hier auch sehr hilfreich, sonst liest man die komplette EBAN!!!
SELECT banfn bnfpo ernam erdat txz01 FROM eban
* WHERE...
INTO TABLE gt_eban.
Folgende Benutzer bedankten sich beim Autor Alexander D. für den Beitrag:
Thanatos82