Interne tabeller
datatypen for en intern tabel er fuldt specificeret af dens linjetype, nøgle og tabeltype.
linjetype
linjetypen for en intern tabel kan være enhver datatype. Datatypen for en intern tabel er normalt en struktur. Hver komponent i strukturen er en kolonne i den interne tabel. Linjetypen kan dog også være elementær eller en anden intern tabel.
nøgle
nøglen identificerer tabelrækker. Der er to slags nøgle til interne tabeller – standardnøglen og en brugerdefineret nøgle. Du kan angive, om nøglen skal være unik eller ikke-unik. Interne tabeller med en unik nøgle kan ikke indeholde dublerede poster. Det unikke afhænger af bordadgangsmetoden.
ved tabeller med struktureret rækketype dannes standardnøglen fra alle tegntypekolonner i den interne tabel. Hvis en tabel har en elementær linjetype, er standardtasten hele linjen. Standardtasten for en intern tabel, hvis linjetype er en intern tabel, standardtasten er tom. Ved tabeller med ikke-struktureret rækketype består standardnøglen af hele rækken. Hvis rækketypen også er en tabel, defineres en tom tast.
den brugerdefinerede nøgle kan indeholde alle kolonner i den interne tabel, der ikke er nogen intern tabel selv, og indeholder ikke interne tabeller. Referencer er tilladt som tabelnøgler. Interne tabeller med en brugerdefineret nøgle kaldes nøgletabeller. Når du definerer nøglen, er sekvensen af nøglefelterne signifikant. Du skal huske dette, for eksempel, hvis du har til hensigt at sortere tabellen efter nøglen.
Tabeltype
tabeltypen bestemmer, hvordan ABAP får adgang til individuelle tabelposter. Interne tabeller kan opdeles i tre typer:
standardtabeller har et internt lineært indeks. Fra en bestemt størrelse opad administreres indekserne for interne tabeller som træer. I dette tilfælde øges indeksadministrationsomkostningerne i logaritmisk og ikke lineær relation til antallet af linjer. Systemet kan få adgang til poster enten ved hjælp af tabelindekset eller nøglen. Svartiden for nøgleadgang er proportional med antallet af poster i tabellen. Nøglen til en standard tabel er altid ikke-unik. Du kan ikke angive en unik nøgle. Dette betyder, at standardtabeller altid kan udfyldes meget hurtigt, da systemet ikke behøver at kontrollere, om der allerede er eksisterende poster.
sorterede tabeller gemmes altid sorteret efter nøglen. De har også et internt indeks. Systemet kan få adgang til poster enten ved hjælp af tabelindekset eller nøglen. Svartiden for nøgleadgang er logaritmisk proportional med antallet af tabelindgange, da systemet bruger en binær søgning. Nøglen til en sorteret tabel kan enten være unik eller ikke-unik. Når du definerer tabellen, skal du angive, om nøglen skal være unik eller ikke-unik. Standard tabeller og sorterede tabeller er kendt generisk som indeks tabeller.
Hashede tabeller har intet lineært indeks. Du kan kun få adgang til en hashet tabel ved hjælp af dens nøgle. Responstiden er uafhængig af antallet af tabelindgange og er konstant, da systemet får adgang til tabelindgange ved hjælp af en hash-algoritme. Nøglen til et hashet bord skal være unik. Når du definerer tabellen, skal du angive nøglen som unik.
generiske interne tabeller
i modsætning til andre lokale datatyper i programmer behøver du ikke at angive datatypen for en intern tabel fuldt ud. I stedet kan du angive en generisk konstruktion, dvs.nøglen eller nøgle-og linjetypen for en intern tabeldatatype kan forblive uspecificeret. Du kan bruge generiske interne tabeller til at angive typerne af feltsymboler og grænsefladeparametrene for procedurer . Du kan ikke bruge dem til at erklære dataobjekter.
Leave a Reply