[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Dec 2009
    Beiträge
    15

    api.QDBRTVFD: PFs einer LF oder Join-LF

    Hallo Forum,
    bevor ich komplett verzweifle ..wieder einmal der Weg zu den Fachleuten. Ich habe mir heute die Zähne an dem o.a. API ausgebissen ... und bin ohne Erfolgserlebnis (bisher) ina WE gegangen. Aber es lässt mir keine Ruhe.

    Ziel: ich möchte per api die abhängigen PFs zu einer definierten LF bzw. Join-LF ermitteln. Ergebnis soll sein wie mit DSPFD *MBR LF nach outfile.

    Wenn ich den IBM-Text richtig verstehe, muss ich per FILD0100 im File Def Header in Feld Qdbflbnum (auf 15) die Anzahl der Member haben. Habe ich (=3).

    Um die Namen der 3 Dateien zu bekommen, müsste ich in der Scope Array die Werte (Based on ...) finden.

    Dazu hole ich den Offset aus dem FDT Feld Qdbfos.

    Im Debug stelle ich aber fest, Feld ist Zero.

    Wo denke ich falsch? Hat jemand vll ein Beispiel? Wäre sehr dankbar und das WE wär' gerettet.

    Danke, ein schönes WE
    Paul

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Da hast du das mit Abstand komplizierteste API rausgesucht.
    Ggf. ist deine Empfängervariable einfach zu klein, so dass bestimmte Informationen dadurch nicht bereitgestellt werden.
    Length of receiver variable

    Aber wenn du nur die Abhängigkeiten brauchst, ist dieses API vielleicht einfacher:
    List Database Relations (QDBLDBR) API

    Um auf USRSPC's zuzugreifen benötigst du noch die USRSPC-API's. Wenn du dich mit Pointern auskennst kannst du auch per Pointer auf den USRSPC zugreifen.
    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

  3. #3
    Registriert seit
    Dec 2009
    Beiträge
    15
    Moin moin, danke für die Info.

    Stimmt, QDBRTVFD ist schon der Hammer.
    Mit den anderen APIs (usrSpc & Co) kenne ich mich schon ganz gut aus.

    Die Länge kann's nicht sein. Wenn ich's mit einer PF mache, steht im SCOPE die korrekte Info.

    DBR bringt mir nichts, weil ich den anderen Weg brauche: nicht von PF alle abhängigen LFs sondern alle in einer LF zugeordneten PFs. Das geht wunderbar mit DSPFD *MBR OUTFILE. Ich will aber nicht erst ne temp.File etc, sondern ... eben den harten Weg.

    Danke und schönes WE
    Paul

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Laut Doku verweist das eher auf IDDU (wer immer das noch nutzt).
    Ich denke, bei LF's musst du auf die LF-Attributes und von dort auf die Join-Specifications gehen.
    Ist die nicht vorhanden, ist es eine einfache LF.
    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

  5. #5
    Registriert seit
    Dec 2009
    Beiträge
    15

    Thumbs up

    das klappt alles wunderbar. lf-/join-attribute ist alles ok.

    im header ist es das Feld Qdbfos = Offset from the start of the FDT header, Qdb_Qdbfh, to the file scope array, Qdbfb.

    es gibt diverse Array sections (zb keys / selects etc). so eben auch die scope. ich hab mich einfach an dem text orientiert:
    Non-join logical files have one entry for each based on physical file. The entry names the based on physical file and describes the logical file record format to use with that file.
    Join logical files have one entry for each based on physical file. The entry names the based on physical file. Only the first entry describes the logical file record format.


    Ich finde es zwar super gut, dass wir hier am we über dieses ibm-chaos-api sprechen ... aber es gibt bestimmt besseres ... zumal ich Mittwoch (mo = Brücke) dann im Büro direkt an der Kiste sitze und nerve.

    also .. danke für die prompte Unterstützung. Ich bleib da am Ball, wär' ja gelacht ...

    btw: unsere amerikanischen Kollegen haben irgendwo (google) einen Hinweis auf Unstimmigkeiten in der Formatbeschreibung. Kann ja auch sein, dass die Position falsch ist. Wenn die den Wert der Scope-Werte Debugger, sieht es ... krumm aus.

    Mittwoch mehr. Danke und Gruß

    (Gut, dass es dieses Forum gibt)

  6. #6
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Manchmal hilft mir bei API's halt der Debugger und der Windowsrechner im Hex-Modus.
    Wenn die Empfängervariable groß genug ist, kann ich mir Inhalte ab einer Position und in Hex anzeigen. Die relativen Adressen per Calc.Exe in dezimal umwandeln und weiter per "eval" durchhangeln.
    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

Similar Threads

  1. 2 PF über 1 LF mischen. PFs haben gleichen Satzformatnamen
    By harkne in forum NEWSboard Programmierung
    Antworten: 10
    Letzter Beitrag: 18-07-08, 13:41
  2. Begrenzungen bei Join in LF?
    By Christian.Hesse in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 12-09-07, 16:48
  3. Join logical File
    By leber in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 19-01-07, 13:55
  4. SQL left join
    By ahingerl in forum IBM i Hauptforum
    Antworten: 8
    Letzter Beitrag: 08-12-06, 08:28
  5. MS Access ODBC mit JOIN: SQL FEHLER666
    By olafu in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 05-10-06, 08:13

Berechtigungen

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