[NEWSboard IBMi Forum]

Thema: DTAARA *LDA?

Hybrid View

  1. #1
    Registriert seit
    Jun 2004
    Beiträge
    78
    Sorry, ist wohl zu warm heute oder so was in der Art
    Ich denke jetzt hab ich es verstanden.
    Ich brauche nur eine lokale DTAARA - ich leg nur die Felder von mehreren DS drueber...
    z.B.
    PGM A benoetigt
    1 6 Feld A
    7 14 Feld B
    PGM B benoetigt
    1 4 Feld C
    5 6 Feld D

    Dann mache ich eine DS
    mit allen Feldern und fuelle vor dem Call was ich gerade benoetige, richtig?

    Gruss Ralf

  2. #2
    Registriert seit
    Aug 2001
    Beiträge
    2.929
    Hallo Ralf,

    Deine Lösung funktioniert, solange:
    sich numerische, alphanumerische und Datums/Zeitfelder sich nicht überlagern. Dadurch könnten ungültige Werte in die numerischen oder Datums- und Zeitfelder gelangen, was dann zu einem Programm-Abbruch führt.

    Besser wäre es, 3 unterschiedliche Datenstrukturen zu definieren und vor Programm-Aufruf die benötigte Datenstruktur in die *LDA, die mit einem einzigen Feld mit 1024A definiert wurde, auszugeben.

    PHP-Code:
    D LDA            UDS                  dtaara(*LDA)           
    D  LDAInhalt                  1024                           
                                                                 
    D DSParPgm1       DS                  Qualified              
    D   Par1                        50A                          
    D   Par2                        15S 0                        
    D   Par3                          D                          
                                                                 
    D DSParPgm1       DS                  Qualified              
    D   Par1                        11S 3                        
    D   Par2                        30A  
     
    *------------------------------------------------------                        
     /
    Free   
          
    //Füllen Datenstrukturen für Parameterübergabe
          
    in LDA;                                                
          
    Clear LDAInhalt;                                       
          
    Select;                                                
          
    When Bedingung 1;                                    
               
    LDAInhalt DSParPGM1;                            
               
    Out LDA;                                          
               
    CallP Pgm1;                                       
          
    When Bedingung 2;                                    
               
    LDAInhalt DSParPGM2;      
               
    Out LDA;                    
               
    CallP Pgm2;                 
          
    EndSL;                           
          
    Out LDA;                         
     /
    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

  3. #3
    Registriert seit
    Jun 2004
    Beiträge
    78
    Danke Birgitta, wieder was gelernt.
    Alle DS sind bei mir alpha, werde trotzdem deine Loesung verwenden - ich finde dadurch ist der Code lesbarer.

    Gruss Ralf

  4. #4
    Registriert seit
    Jan 2007
    Beiträge
    1.002
    Es gäbe noch einen Weg,
    Holzhackermethode halt.

    Leg die Datenbereiche innerhalb der LDA
    fest.

    1-99 = PGM1
    101-200 = PGM2
    ...

    Hat den Vorteil beim Debuggen, dass Du gleich alle übergebenen Werte in der LDA
    siehst und zwischenspeichern muss man auch nicht

  5. #5
    Registriert seit
    Feb 2001
    Beiträge
    20.702
    Bei einer Neukonzeption von Parameterübergaben würde ich die *LDA nicht mehr nehmen sondern Aufrufparameter.
    Dies ist auf jeden Fall sicherer und flexibler.

    Bei "alten" Programmen muss man meist nehmen was gerade da ist.
    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
    Jan 2007
    Beiträge
    1.002
    Da geb ich Dir recht Fuerchau.

Similar Threads

  1. Länge einer DTAARA ermitteln
    By flytokiwi in forum IBM i Hauptforum
    Antworten: 12
    Letzter Beitrag: 04-04-07, 11:36
  2. dtaara per SQL ändern
    By jogisarge in forum NEWSboard Programmierung
    Antworten: 1
    Letzter Beitrag: 21-03-07, 11:00
  3. DTAARA
    By grunzheini in forum NEWSboard Programmierung
    Antworten: 1
    Letzter Beitrag: 31-01-07, 10:04
  4. Daten aus DTAARA
    By dino in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 08-01-07, 15:15
  5. Update DTAARA in RPG/LE
    By HoScHiE in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 10-06-02, 15:06

Berechtigungen

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