[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Nov 2011
    Beiträge
    91

    Chain Key Wildcard

    Hallo!

    Ich habe eine Frage bzgl. eines Chains.

    Als Beispiel: chain(key1:key2:key3:key4)

    Jetzt möchte ich den Keys 1,2,4 feste werte zuordnen und bei key3 ist es mir egal was drinsteht (-> wäre sozusagen ein *all - oder wie man es nennen will)

    Ist soetwas möglich? Besten Dank im voraus!

  2. #2
    Registriert seit
    Aug 2001
    Beiträge
    2.928
    Da gibt es mehrere Möglichkeiten:
    1. Du legst eine neue logische Datei an mit den Keys 1,2,4 und evtl. 3 und verwendest diese.
    2. Du setzt mit den Keys 1,2 auf (SETLL) und liest (READE) in einer Schleife solange bis Schlüssel 4 dem fixen Wert entspricht.
    3. Du verwendest embedded SQL:
    Code:
    Exec SQL  Select * into :DSRecord
                From File
                Where Key1 = 'X' and Key2 = 'Y' and Key4 = 'Z'
                Fetch First Row Only;
    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

  3. #3
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Aus Performancegründen empfehle ich Methode 1 (LF/Index), dabei ist es egal ob du CHAIN oder SQL verwendest.
    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

  4. #4
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    Zitat Zitat von philsturm Beitrag anzeigen
    bei key3 ist es mir egal was drinsteht (-> wäre sozusagen ein *all - oder wie man es nennen will)
    Schüttel...
    ... was soll man denn unter egal verstehen? und was ist mit den anderen Feldern? und wenn das mehrere Sätze sind, welcher soll es denn dann genau sein, oder etwa alle?

    Genau das fällt dir auch bei dem vorgeschlagenen SQL Weg auf die Füsse, bei mehreren Sätzen kommt da ein Fehler zurück.

    D*B,

    den es bei solchem Datendseign immer graust!
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  5. #5
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Nun ja, nicht so hart.
    Wenn mir Key3 in diesem Fall egal ist, bekomme ich per LF (mit Key1, Key2, Key4, Key3) halt den 1. Satz mit dem 1. Schlüssel aus Key3 und kann dann ggf. per READE weiterlesen.

    Beim SQL kann ich da noch mit "fetch first 1 rows only" einschränken, dann gibts auch da keinen Fehler, ansonsten halt einen Cursor deklarieren und mit Fetch arbeiten.

    Anders mache ich es ja auch nicht, wenn ich in den berühmten Altanwendungen eine andere Sortierfolge benötige. Es gibt da durchaus PF's mit 30-50 verschiedenen LF's.
    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
    .. doch, doch, das muss auf den Punkt gebracht werden. Hier gibt es nämlich einen wesentlichen Unterschied zwischen RLA und SQL. RLA liefert den sequentiell ersten Satz der PF mit den passenden Where Kriterien zurück und SQL die Menge derjenigen, für die die WHERE Bestimmung trifft. Folge ich deinem Vorschlag, bekomme ich irgendeinen (in Worten: irgend einen!) zurück, auf den die Where Bedingung zutrifft, im schlimmsten Falle (und shit happens) bei jedem Versuch einen anderen!
    Die einzige Information, die ich daraus ableiten kann ist dann, die Existenz eines Satzes mit den vorgegebenen Kriterien. Wechsel von RLA zu SQL ist eben doch ein wenig mehr als SQE und CQE und angebliche, messtechnisch nicht verifizierbare Geschwindigkeitsgewinne und andere solche Nebensächlichkeiten, sondern das hat was mit Design zu tun!

    D*B
    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
    Nov 2011
    Beiträge
    91
    Vielen Dank für die ganzen Antworten und die lebhafte Diskussion.
    Der Vorschlag mit den LFs hat mir sehr weitergeholfen und das Problem gelöst.

Similar Threads

  1. CHAIN Probleme
    By DISCOME in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 26-02-10, 14:47
  2. FTP Befehl mit Wildcard von AS400
    By Souljumper in forum NEWSboard Programmierung
    Antworten: 4
    Letzter Beitrag: 13-11-06, 12:34
  3. Chain im Free-Format
    By woki in forum NEWSboard Programmierung
    Antworten: 13
    Letzter Beitrag: 09-03-06, 15:43
  4. [SOLVED] CHAIN im Modul macht mich Wahnsinnig
    By VisioX in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 10-06-05, 09:48
  5. update or delete without prior READ or CHAIN
    By newcomer in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 30-05-05, 10:12

Berechtigungen

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