[NEWSboard IBMi Forum]
Seite 1 von 2 1 2 Letzte

Hybrid View

  1. #1
    Registriert seit
    Jan 2003
    Beiträge
    759
    Hi,

    laß die D-Zeilen weg und ändere die F-Zeile:

    "O " statt "UF" (Alternative: dummy read hinter retrn)
    + (TESTDDS2:TESTOUT) zum Umbenennen des Satzformats

    ...auf die schnelle, ohne Garantie ;-)



    oooh, Kollege Fuerchau war schneller...

  2. #2
    Registriert seit
    Sep 2006
    Beiträge
    132
    Argh stimmt warum geb ich da die Datei an....

    Danke an euch beide!

  3. #3
    Registriert seit
    Aug 2001
    Beiträge
    2.934
    Hallo,

    es gibt mehrere Möglichkeiten. Man kann z.B. die Source-Datei auch intern beschreiben. Etwa so:

    PHP-Code:
    FTestDDS2  O    F   92        DISK    
     
    *-----------------------------------------------------
    D DSSRC           DS                  
    D   SrcSeq                          6S 2           
    D   SrcDat                          6S 0           
    D   SrcDta                         80A   
     
    *-----------------------------------------------------
     /
    Free
        SrcSeq 
    1;
        
    SrcDat 060911;
        
    SrcDta 'Dies ist ein Test';
        
    Write TestDDS2 DSSRC;
     /
    End-Free 
    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

  4. #4
    Registriert seit
    Sep 2006
    Beiträge
    132
    Hallo,

    kann ich die Datei auch variabel definieren? Zb.: Ich übergebe dem CL Programm eine char-Variable die einen (zukünftigen) Dateinamen enthält. Diese Datei wird dann vom CL Programm erzeugt. Das CL Programm ruft dann das RPG Programm auf welches mithilfe des Strings die Datei definiert und dann darauf zugreift.

    Gruß

    Martin

  5. #5
    Registriert seit
    Feb 2001
    Beiträge
    20.748
    Auch dem CLP kannst du Parameter übergeben:

    PGM PARM(&VAR)

    DCL &VAR *CHAR 10
    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
    Sep 2006
    Beiträge
    132
    Zitat Zitat von Fuerchau
    Auch dem CLP kannst du Parameter übergeben:

    PGM PARM(&VAR)

    DCL &VAR *CHAR 10
    Oh ich habe mich wahrscheinlich nicht deutlich ausgedrückt. Meine Frage war ob und wie ich in RPG eine Datei(F-Bestimmung) Variabel definieren kann. Also das Programm bekommt eine char-Variable die den Dateinamen der Datei enthält, auf die zugegriffen werden soll.

    Ist das möglich und falls ja wie?

    Danke.

    Martin

  7. #7
    Registriert seit
    Aug 2004
    Beiträge
    923
    Hello,

    irgendwie werde ich das Gefühl nicht los, dass das alles viel einfacher wäre, wenn Du mal Dein konkretes Problem beschreiben würdest....

    Zu Deiner letzten Frage:
    Die Struktur einer DDS ist ja im Prinzip immer die gleiche.
    Also 6 Stellen SourceSequenz, 6 Stellen Datum und 80 Stellen Daten.

    Man kann nun ohne Probleme verschiedene Wege angehen, sowas mehr oder weniger variabel zu händeln.

    Da wurden hier schon diverse gute Lösungsansätze gebracht.

    Wenn Du im RPG eine DDS ansprechen willst, von der Du zur Wandlungszeit nicht den korrekten Namen hast, reicht ein einfaches OVRDBF vorher um den variablen Namen damit auf die im RPG fixierten Anweisungen zu verdrehen.

    Das kannst Du entweder vorher per CLP machen oder auch innerhalb des RPG wenn Du die Datei Usercontrolled bearbeitest.

    Musst Dir nur das aussuchen, was am einfachsten für Dich ist.

    Lass uns doch mal an der konkreten Problematik teilhaben...

    k.

  8. #8
    Registriert seit
    Sep 2006
    Beiträge
    132
    Zitat Zitat von kuempi von stein
    Hello,

    irgendwie werde ich das Gefühl nicht los, dass das alles viel einfacher wäre, wenn Du mal Dein konkretes Problem beschreiben würdest....

    Zu Deiner letzten Frage:
    Die Struktur einer DDS ist ja im Prinzip immer die gleiche.
    Also 6 Stellen SourceSequenz, 6 Stellen Datum und 80 Stellen Daten.

    Man kann nun ohne Probleme verschiedene Wege angehen, sowas mehr oder weniger variabel zu händeln.

    Da wurden hier schon diverse gute Lösungsansätze gebracht.

    Wenn Du im RPG eine DDS ansprechen willst, von der Du zur Wandlungszeit nicht den korrekten Namen hast, reicht ein einfaches OVRDBF vorher um den variablen Namen damit auf die im RPG fixierten Anweisungen zu verdrehen.

    Das kannst Du entweder vorher per CLP machen oder auch innerhalb des RPG wenn Du die Datei Usercontrolled bearbeitest.

    Musst Dir nur das aussuchen, was am einfachsten für Dich ist.

    Lass uns doch mal an der konkreten Problematik teilhaben...

    k.
    Hm also:

    Mein Problem ist das ich von einem Programm aus Mithilfe 2er Datenbankdateien eine DDS Datei erzeugen können soll. Ich habe also den Namen der zu erstellenden Datei und die Definitionen(SRCDTA) und muss daraus eine DDS Datei erzeugen.

    Bisher hat es sich so rausgestellt das es das beste und einfachste wäre dies über CL und RPG zu machen.

    Zzt habe ich noch 2 Probleme.
    1. Wie kann ich in RPG die Datei so definieren das ich auf sie zugreifen kann? Weil ich den Namen der Datei auf die ich zugreifen soll übergeben bekomme. ZB.: Ich mache ein
    PHP-Code:
    ADDPFM     FILE(LIB/DDSTEST2MBR(DDSTEST3
    Auf dieses neue Member will ich zugreifen und in es meine Werte schreiben. Das Problem dabei ist wie gesagt das ich den Namen ja erst übergeben bekomme dh. eine normal Definition ist unmöglich(?).

    2. Ich kann meiner Datei:

    PHP-Code:
    AuswObjekt     Art         Attribut 
         TESTDDS2    
    *FILE       PF-DTA 
    nicht mit ADDPFM ein neues Member hinzufügen da diese Datei nur ein Member haben darf und ich nicht weiß wie ich das ändern soll.

    Ich bin wie gesagt noch ein Neuling auf der i5 bzw beim Programmieren auf der i5.

    Vielen Dank für eure Hilfe im Vorraus.

    Gruß

    Martin

  9. #9
    Registriert seit
    Feb 2001
    Beiträge
    20.748
    Die F-Bestimmung lässt sich nicht variabel gestalten, da der Compiler die richtigen Befehle generieren muss.

    Gerade dafür ist ja der OVRDBF konzipiert um die F-Bestimmungen variabel zu nutzen.
    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

  10. #10
    Registriert seit
    Feb 2001
    Beiträge
    20.748
    Die Anzahl der Member kann über CHGPF ... MAXMBR festgelegt werden.

    Ansonsten:
    PF-DTA ist eine PF die per CRTPF angelegt wurde.
    PF-SRC ist eine PF die mittels CRTSRCPF angelegt wurde.

    Bei DSPFD tauchen beide als PF auf.
    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

  11. #11
    Registriert seit
    Dec 2002
    Beiträge
    302
    Das Ganze kann man auch ohne CL-Befehle (OVRDBF) variabel gestalten. Hier ein Beispiel.

    PHP-Code:
    fQDDSSRC   O    F   92        Disk    UsrOpn                                                    
    f                                     ExtFile
    (MyFile)                                           
    f                                     ExtMbr(MyMbr)                                             
     *                                                                                              
    dQDDSSRCRF        DS            92                                                              
    d SRCSEQ                         6A                                                             
    d SRCDAT                         6A                                                             
    d SRCDTA                        80A                                                             
     
    *                                                                                              
    dMyFile           S             21A                                                             
    dMyMbr            S             10A                                                             
     
    *                                                                                              
    c                   Eval      MyFile 'LIB/FILE'                          oder MyFile 'FILE' 
    c                   Eval      MyMbr 'MBR'                                                     
    c                   Open      QDDSSRC                                                           
    c                   Write     QDDSSRC       QDDSSRCRF                                           
    c                   Close     QDDSSRC 
    Frank Hildebrandt

  12. #12
    Registriert seit
    Sep 2006
    Beiträge
    132
    Zitat Zitat von Frank Hildebrandt
    Das Ganze kann man auch ohne CL-Befehle (OVRDBF) variabel gestalten. Hier ein Beispiel.

    PHP-Code:
    fQDDSSRC   O    F   92        Disk    UsrOpn                                                    
    f                                     ExtFile
    (MyFile)                                           
    f                                     ExtMbr(MyMbr)                                             
     *                                                                                              
    dQDDSSRCRF        DS            92                                                              
    d SRCSEQ                         6A                                                             
    d SRCDAT                         6A                                                             
    d SRCDTA                        80A                                                             
     
    *                                                                                              
    dMyFile           S             21A                                                             
    dMyMbr            S             10A                                                             
     
    *                                                                                              
    c                   Eval      MyFile 'LIB/FILE'                          oder MyFile 'FILE' 
    c                   Eval      MyMbr 'MBR'                                                     
    c                   Open      QDDSSRC                                                           
    c                   Write     QDDSSRC       QDDSSRCRF                                           
    c                   Close     QDDSSRC 
    Ah vielen Dank für das Beispiel.

Similar Threads

  1. ILE RPG / SQL Füllen einer Feldgruppe
    By homue in forum NEWSboard Programmierung
    Antworten: 5
    Letzter Beitrag: 18-07-07, 17:47
  2. Problem mit Java-Methoden Aufruf aus ILE RPG?
    By Stoeberl in forum NEWSboard Programmierung
    Antworten: 8
    Letzter Beitrag: 10-01-07, 11:58
  3. ILE RPG und dynamisches Array
    By Squall in forum NEWSboard Programmierung
    Antworten: 9
    Letzter Beitrag: 10-10-06, 09:53
  4. Return ILE RPG
    By Squall in forum IBM i Hauptforum
    Antworten: 31
    Letzter Beitrag: 28-09-06, 18:53
  5. Rechnen mit Datumsfeldern in ILE RPG
    By Angela in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 22-08-06, 11:11

Berechtigungen

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