HASH Tabelle / Ausgabe

Getting started ... Alles für einen gelungenen Start.
6 Beiträge • Seite 1 von 1
6 Beiträge Seite 1 von 1

HASH Tabelle / Ausgabe

Beitrag von isp (ForumUser / 39 / 16 / 0 ) »
Hallo zusammen,

ich habe schon in mehren Foren rumgesucht, aber eine Erlärung, wie man richtig Hash-Tabelle verwendet, leider nicht gefunden.
Also ich möchte aus einer DB-Tabelle bestimmte Einträge in einer Hash-Tabelle speichern.

TYPES: ty_connection_list LIKE HASHED TABLE OF DBTABLE
WITH UNIQUE KEY NAME1.

DATA: connection_list TYPE ty_connection_list WITH HEADER LINE.
DATA: ex_connection TYPE DBTABLE.

SELECT NAME1
INTO TABLE connection_list
FROM DBTABLE
WHERE NAME1 LIKE 'Konrad'.

LOOP AT connection_list INTO ex_connection.
WRITE: / ex_connection-NAME1.
ENDLOOP.

Also System liefert keine Fehlermeldung, aber gibt das Resultat (eine Namensliste) nicht aus..
Habe ich etwas übergesehen, oder ist ganze Einsatz falsch?

VIELEN DANK!!

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: HASH Tabelle / Ausgabe

Beitrag von a-dead-trousers (Top Expert / 4395 / 223 / 1182 ) »
hi!

Ich glaub der Fehler liegt in deinem LIKE:
Meintest du nicht vielleicht '%Konrad%' oder so. :P
(Du hast die Wildcards vergessen)

lg ADT

Folgende Benutzer bedankten sich beim Autor a-dead-trousers für den Beitrag:
isp

Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: HASH Tabelle / Ausgabe

Beitrag von Haubi (Expert / 625 / 20 / 30 ) »
Tach.

Ein wenig OT:
Eine Hash-Tabelle würde ich eigentlich nur dann einsetzen, wenn ich immer mit vollqualifiziertem Schlüssel zugreife, d.h. READ TABLE ... WITH TABLE KEY. Ansonsten ergibt der Einsatz für mich keinen Sinn.
Wenn die Einträge der Tabelle nach Name sortiert ausgegeben werden sollen würde ich eher eine SORTED TABLE verwenden.

Dennoch sollte der LOOP in Deinem Fall Ergebnisse liefern. Ich denke daher wie ADT, dass es am SELECT liegt, weniger an der Definition der Tabelle.

Grüße,
Haubi

Folgende Benutzer bedankten sich beim Autor Haubi für den Beitrag:
isp

Das ABAP Kochbuch ab sofort bei Amazon...

I'd rather write code that writes code than write code...

Re: HASH Tabelle / Ausgabe

Beitrag von isp (ForumUser / 39 / 16 / 0 ) »
a-dead-trousers hat geschrieben:hi!

Ich glaub der Fehler liegt in deinem LIKE:
Meintest du nicht vielleicht '%Konrad%' oder so. :P
(Du hast die Wildcards vergessen)

lg ADT
Danke! Leider hats nicht geholfen.

ich habe eine Liste :
Konrad
Konrad
Konrad

ausgegeben wird :

Konrad - 3

wäre die Hashtabelle richtige Wahl?
ich bin leider mit ABAP-Syntax noch nicht soweit um eine richtige Schleife zukonstruieren :(

Re: HASH Tabelle / Ausgabe

Beitrag von black_adept (Top Expert / 4089 / 127 / 940 ) »
Hallo isp,

das ist doch ein ganz offensichtlicher Fall von "Nutze den Debugger". Lass den im Single-Step Modus über die betreffende Stelle laufen und du siehst wahrscheinlich sofort wo das Problem ist.

Und noch eine Anmerkung zum Coding selber: Wenn du ein Einzelfeld via SELECT einzelfeld INTO TABLE tabelle_vom_typ_datenbanktabelle in eine interne Tabelle schiebst, ist in den meisten Fällen das Ergebnis ganz und gar nicht das was du haben möchtest. ( Stichpunkt: MANDT ).

Folgende Benutzer bedankten sich beim Autor black_adept für den Beitrag:
isp

live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: HASH Tabelle / Ausgabe

Beitrag von a-dead-trousers (Top Expert / 4395 / 223 / 1182 ) »
black_adept hat geschrieben:Wenn du ein Einzelfeld via SELECT einzelfeld INTO TABLE tabelle_vom_typ_datenbanktabelle in eine interne Tabelle schiebst, ist in den meisten Fällen das Ergebnis ganz und gar nicht das was du haben möchtest. ( Stichpunkt: MANDT ).
Huch! Das ist mir gar nicht aufgefallen :oops:
@isp entweder du verwendest INTO CORRESPONDING FIELDS OF TABLE oder du gestaltest deine Tabelle so, dass sie wirklich nur das Feld NAME1 umfasst.
Oder aber du selektierst nicht nur das Feld NAME1 sondern '*' damit du alle Informationen aus der Datenbank erhältst. (Was glaub ich in deinem Fall sogar sinnvoller wäre, da du scheinbar eine Kundenliste oder sowas in der Art anfertigen möchtest und da kann man die zusätzlichen Informationen mitunter brauchen)
isp hat geschrieben:ich habe eine Liste :
Konrad
Konrad
Konrad

ausgegeben wird :

Konrad - 3
In dem Fall ist eine HASH-Tabelle (oder genauer der UNIQUE KEY) sinnlos, da im Endeffekt beim Einfügen in die interne Tabelle von den drei "Konrads" nur einer übrig bleibt. ABAP macht nämlich hier nichts anderes als, dass es immer wieder versucht die DB-Ergebnisse in die Tabelle zu schreiben und da alle den gleichen Schlüssel haben, bleibt am Schluss nur der übrig der zuletzt gefunden wurde.

Würde deine Liste

Code: Alles auswählen.

Konrad XZY
Konrad Maier
Konrad von Freiherr
lauten, hättest du in deiner Tabelle dann auch drei Ergebnisse.

Bei der HASH-Tabelle hast du außerdem den Nachteil, dass du nicht per INDEX auf die Daten zugreifen kannst sondern immer auf den EXAKTEN Key angewiesen bist. LOOP AT WHERE mit Teilschlüssel wär glaub ich entweder sehr ineffizient oder sogar unmöglich.
Haubi hat geschrieben:Eine Hash-Tabelle würde ich eigentlich nur dann einsetzen, wenn ich immer mit vollqualifiziertem Schlüssel zugreife, d.h. READ TABLE ... WITH TABLE KEY. Ansonsten ergibt der Einsatz für mich keinen Sinn.
Wenn die Einträge der Tabelle nach Name sortiert ausgegeben werden sollen würde ich eher eine SORTED TABLE verwenden.
Bin der gleichen Meinung, aber vielleicht sogar noch etwas radikaler: ich würde einen STANDARD TABLE verwenden. Dann hast du nämlich nachwievor die Möglichkeit deine Ergebnisse nach eigenen Wünschen zu sortieren. Falls du wirklich den schnellen Zugriff auf das Ergbnis brauchst kannst du dann immer noch READ TABLE ... BINARY SEARCH verwenden. (Aber natürlich erst nach einem entsprechenden SORT)

lg ADT
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Seite 1 von 1

Vergleichbare Themen

4
Antw.
495
Views
Nachteile einer Hash-Tabelle in ABAP
von DerAzubi » 17.10.2022 15:22 • Verfasst in ABAP® für Anfänger
3
Antw.
2693
Views
Hash berechnen für Logische Datei
von an4kh4 » 19.09.2007 11:33 • Verfasst in ABAP® für Anfänger
1
Antw.
2925
Views
Passwort Hash Auswertung - login / min_password_diff
von hwei » 07.10.2020 12:33 • Verfasst in Basis
3
Antw.
3720
Views
Ausgabe als Tabelle ausgeben
von Paul » 03.07.2018 13:43 • Verfasst in ABAP® für Anfänger
2
Antw.
4365
Views
Ausgabe in einer Tabelle
von MG1993 » 16.10.2014 10:18 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag


Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Unbeantwortete Forenbeiträge

aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 2425
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9014