[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Aug 2001
    Beiträge
    309

    Post keine doppelten Schlüssel in LF

    Hi *all

    Ist es möglich eine logische Datei zu erstellen, welche keine doppelten Schlüssel
    enthält?

    Die physiche Datei enthält doppelte Schlüssel
    Die logische Datei soll mir aber nur jeweils
    den ersten Satz (und nicht alle Sätze mit gleichem Schlüssel) anzeigen

  2. #2
    Registriert seit
    Jan 2003
    Beiträge
    759

    Post

    Hallo muadeep,

    ich würde das mit einem SETGT nach jedem READ lösen,

    Gruß Robert

  3. #3
    Registriert seit
    Nov 2002
    Beiträge
    57

    Post

    Hallo,

    programmtechnisch könnte man dies ja
    auch mit einer Gruppenwechsellogig
    erledigen.
    In beiden Fällen würde man sich ja
    die logische ersparen.

    Gruss Thomas

  4. #4
    Registriert seit
    Aug 2001
    Beiträge
    309

    Post

    ups, sorry

    ich habe ganz vergessen, daß ich daß ja
    schon in der DDS-Beschreibung der logischen
    Datei bräuchte!

  5. #5
    Registriert seit
    Feb 2001
    Beiträge
    20.695

    Post

    Wenn die PF bereits doppelte Schlüssel enthält, ist es auch einer LF nicht mehr möglich, nur noch eindeutige Schlüssel zu verwalten.
    Du kannst dies wirklich nur noch programmtechnisch lösen.

    Anmerkung: Solltest du REUSEDLT(*YES) verwenden, ist nicht eindeutig gesichert, dass der 1. Satz in Keyfolge auch der zuerst erstellte Satz ist.

    Übrigens: LF's lassen sich auch per SQL erstellen, siehe CREATE VIEW xxx for SELECT ....
    Mittels "Group by" lassen sich dann auch eindeutige Schlüssel erstellen.
    Diese LF läßt sich von RPG auch genauso verwenden. Wenn du diese dann liest und mittels gelesenem Schlüssel auf die PF per CHAIN zugreifst, erhältst du genau 1 Satz.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  6. #6
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    Hallo,

    das mit den SQL Views und Record Löffel Exzess, das ist so eine Sache: die haben keine Sortierung, die Reihenfolge der Sätze überlässt man dann dem Datenbanksystem und das kann sich da auch unter einem Folgerelease anders entscheiden, was nicht unwahrscheinlich ist.
    Ansonsten sorgt natürlich Group By und distinct dafür dass die Views dann read only sind; wobei distinct garnicht geht, da ja nur die Schlüssel gleich sind und bei group by muss man dann auch noch Spaltenfunktionen verwenden, damit man alle Felder mit reinbekommt.
    Fazit: mit DDS und mit record Löffel Exzess stößt man hier an Grenzen, da bleibt nur die Programm technische Lösung; SETGT oder alle lesen mit Gruppenwechsel Logik gibt sich hierbei nicht viel - für einen Satz könnte der SETGT schneller sein, für alle eher der Gruppenwechsel, beidesmal sind die Unterschiede in der Nähe der Messbarkeit.

    mfg

    Dieter Bender

    PS: Was ich nicht verstehe ist, warum man sich so einen Unfug antut (wobei das auch ein Softwarelieferant gewesen sein kann, der solchen Murks auch noch verkauft hat, Kompliment an die Marketing Abteilung!)


    Zitat Zitat von Fuerchau
    Wenn die PF bereits doppelte Schlüssel enthält, ist es auch einer LF nicht mehr möglich, nur noch eindeutige Schlüssel zu verwalten.
    Du kannst dies wirklich nur noch programmtechnisch lösen.

    Anmerkung: Solltest du REUSEDLT(*YES) verwenden, ist nicht eindeutig gesichert, dass der 1. Satz in Keyfolge auch der zuerst erstellte Satz ist.

    Übrigens: LF's lassen sich auch per SQL erstellen, siehe CREATE VIEW xxx for SELECT ....
    Mittels "Group by" lassen sich dann auch eindeutige Schlüssel erstellen.
    Diese LF läßt sich von RPG auch genauso verwenden. Wenn du diese dann liest und mittels gelesenem Schlüssel auf die PF per CHAIN zugreifst, erhältst du genau 1 Satz.
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  7. #7
    Registriert seit
    Aug 2001
    Beiträge
    2.928

    Post

    Eine Alternative wäre eine View mittels SQL zu erstellen.
    z.B.:
    CREATE VIEW MyLib/MyView
    AS SELECT DISTINCT Field1, Field2, ... FieldN
    FROM MyFile

    (entspricht SETGT + READ)

    oder

    CREATE VIEW MyLib/MyView
    AS SELECT Field1, Field2, ... FieldN
    FROM MyFile
    GROUP BY Field1, Field2, ... FieldN

    entspricht Gruppen-Wechsel-Logik

    SQL-Views können in SQL-Abfragen verwendet werden und damit ganz einfach z.B. mittels Embedded SQL in RPG verarbeitet werden.

    Zu den programmtechnischen Anmerkungen ist folgendes zu sagen:
    Die Variante mit SETGT READ ist wesentlich sinnvoller als eine Gruppenwechsel-Steuerung.
    Im ersten Fall wird jeweils nur der 1.Satz des Schlüssels gelesen.
    Im zweiten Fall werden alle Sätze gelesen und nur beim Gruppenwechsel erfolgt eine Aktion.

    Birgitta

    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 5. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  8. #8
    Unregistriert Besucher/Guest

    distinct in DDS

    Interessant wäre allerdings die DDS Entsprechung für

    CREATE VIEW MyLib/MyView
    AS SELECT DISTINCT Field1, Field2, ... FieldN from table1 t1, table t2 where t1.fieldx=t2.fieldx and t1.fieldy='xx'

    Dies ginge nämlich dann mit JOIN und COMP. Jedoch weiß ich nicht, wie man das distinct in DDS angeben kann.

Similar Threads

  1. Datenart in LF ändern
    By Mr.iSeries in forum IBM i Hauptforum
    Antworten: 7
    Letzter Beitrag: 25-01-07, 08:46
  2. Reihenfolge der Sätze im LF
    By alexander may in forum NEWSboard Programmierung
    Antworten: 6
    Letzter Beitrag: 08-12-05, 19:25
  3. Datei per FTP mit CR LF
    By jogisarge in forum IBM i Hauptforum
    Antworten: 13
    Letzter Beitrag: 06-07-05, 10:23
  4. DDS - LF - numerisch in alpha
    By Tobse77 in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 22-06-05, 09:02
  5. drop view für LF
    By Robi in forum NEWSboard Programmierung
    Antworten: 1
    Letzter Beitrag: 06-04-05, 16:59

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •