[NEWSboard IBMi Forum]

Thema: DTAARA *LDA?

Hybrid View

  1. #1
    Registriert seit
    Aug 2001
    Beiträge
    2.934
    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

  2. #2
    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

  3. #3
    Registriert seit
    Jan 2007
    Beiträge
    1.015
    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

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.752
    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

  5. #5
    Registriert seit
    Jan 2007
    Beiträge
    1.015
    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, 12:36
  2. dtaara per SQL ändern
    By jogisarge in forum NEWSboard Programmierung
    Antworten: 1
    Letzter Beitrag: 21-03-07, 12:00
  3. DTAARA
    By grunzheini in forum NEWSboard Programmierung
    Antworten: 1
    Letzter Beitrag: 31-01-07, 11:04
  4. Daten aus DTAARA
    By dino in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 08-01-07, 16:15
  5. Update DTAARA in RPG/LE
    By HoScHiE in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 10-06-02, 16:06

Berechtigungen

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