[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    May 2007
    Beiträge
    295

    Question SQL-Precompiler mitten in einer DCL-DS

    Guten Morgen wertes Forum.

    Ich bastle gerade an ein paar Programme welche denselben Copysource mit einer Datenstrukturdefinition includen.

    Beim letzten Programm knallt mir jedoch der SQL-Precompiler seine Copystrecken mitten in die DCL-DS (siehe Bild) und das dies nun nicht mehr zu compilieren ist versteh ich ...

    Click image for larger version. 

Name:	Unbenannt.png 
Views:	52 
Size:	70,7 KB 
ID:	530

    Hat dies schon jemand gehabt bzw weiß wer wie ich das lösen kann (PTF etc) und/oder warum das der Precompiler so macht ?

    OS 7.2

    Vielen lieben Dank und Grüße
    Christian
    Greets
    Christian
    Anwendungsentwickler und ein bissal Systemoperator
    https://github.com/prsbrc
    LinkedIn

  2. #2
    Registriert seit
    Jan 2001
    Beiträge
    832
    Hi,

    also die Fehlermeldung sagt das der END-DS fehlt.

  3. #3
    Registriert seit
    May 2007
    Beiträge
    295
    Jeb, da die SQLCA vor dem END-DS hinein gemogelt wurde :-)

    Code:
    **FREE
    
    /IF DEFINED (PARM_SET1)
    
    DCL-DS InParameters_Set1_Template TEMPLATE QUALIFIED;
      Company CHAR(3);
      Division CHAR(3);
      CustomerNumber CHAR(10);
      ItemNumber CHAR(10);
    END-DS;
    
    DCL-DS Parameter_Set1_Template TEMPLATE QUALIFIED;
      DCL-DS InParameter LIKEDS(InParameters_Set1_Template);
      OutParameter CHAR(130) DIM(27);
    END-DS;
    
    DCL-DS DynamicCallDS_Set1_Template TEMPLATE QUALIFIED;
      Parameters LIKEDS(Parameter_Set1_Template);
    END-DS;
    
    /UNDEFINE PARM_SET1
    
    /ENDIF
    Greets
    Christian
    Anwendungsentwickler und ein bissal Systemoperator
    https://github.com/prsbrc
    LinkedIn

  4. #4
    Registriert seit
    Aug 2001
    Beiträge
    2.869
    M.E. ist der verschachtelte DCL-DS falsch!

    Versuch mal die Datenstruktur-Definition wie folgt zu ändern:
    Code:
    DCL-DS Parameter_Set1_Template TEMPLATE QUALIFIED;
      InParameter LIKEDS(InParameters_Set1_Template);
      OutParameter CHAR(130) DIM(27);
    END-DS;
    Birgitta
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 4. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  5. #5
    Registriert seit
    Aug 2001
    Beiträge
    2.869
    Sorry! Doppelt geposted

    Birgitta
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 4. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  6. #6
    Registriert seit
    May 2007
    Beiträge
    295
    Einen wunderschönen guten Morgen.
    Danke für den Hinweis. Des Fehler hab ich gestern auch schon entdeckt oder Fehler... unschönheit da sich die anderen Programme ja mit dieser Copystrecke komillieren lassen :-)

    Ich habe testweise die Definition folgendermaßen umgebaut sowie den INCLUDE in eine Prozedur verschoben:
    Code:
    DCL-DS DynamicCallDS_Set1_Template TEMPLATE QUALIFIED;
     DCL-DS Values;
      DCL-DS InParameter;
       Company CHAR(3);
       Division CHAR(3);
       CustomerNumber CHAR(10);
       ItemNumber CHAR(10);
      END-DS;
      OutParameter CHAR(130) DIM(27);
     END-DS;
    END-DS;
    Jedoch leider mit einem ähnlichem Ergebnis.
    Click image for larger version. 

Name:	Unbenannt.png 
Views:	9 
Size:	60,5 KB 
ID:	531
    Nun knallt der Precompiler zwar nicht mehr die SQLCA hinein (die landet knapp vor der Main PROC - somit global) sondern die Arbeitsfelder SQL_00... zwischen dem OutParameter und END-DS. Scheinbar ein nicht lösbares Problem bei mir hier somit baue ich die Programme wieder auf nicht verschachtelte DS retour ... :-)

    Edit: Im Herbst gibts dann ein neues Blech dann versuch ichs mitn neuen Release erneut.
    Edit2: Easy cheesy Arrays anstatt DS und schon lässt es sich kompillieren.

    LG
    Greets
    Christian
    Anwendungsentwickler und ein bissal Systemoperator
    https://github.com/prsbrc
    LinkedIn

  7. #7
    Registriert seit
    Aug 2001
    Beiträge
    2.869
    M.E. brauchst Du die verschachtelten DCL-DS nicht anzugeben.
    Versuch mal die Datenstruktur wie folgt zu definieren:
    Code:
    DCL-DS DynamicCallDS_Set1_Template TEMPLATE QUALIFIED;
      Values;
        InParameter                        Overlay(Values);
          Company        CHAR(3)           Overlay(InParameter);
          Division       CHAR(3)           Overlay(InParameter: *Next);
          CustomerNumber CHAR(10)          Overlay(InParameter: *Next);
          ItemNumber     CHAR(10)          Overlay(InParameter: *Next);
        OutParameter     CHAR(130) DIM(27) Overlay(Values: *Next);
     END-DS;
    Birgitta
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 4. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  8. #8
    Registriert seit
    Aug 2001
    Beiträge
    2.644
    Zitat Zitat von prsbrc Beitrag anzeigen
    Edit: Im Herbst gibts dann ein neues Blech dann versuch ichs mitn neuen Release erneut.
    Um neue Releases zu testen, musst Du nicht unbedingt auf ein neues Blech warten. Da gibt es doch externe Lösungen ;-)

    -h
    www.RZKH.de
    IBM Champion 2022, 2023, 2024
    IBM i Community Advocate https://www.youracclaim.com/badges/6...c-7ad4ba147af6
    Common / CEAC
    http://pub400.com

  9. #9
    Registriert seit
    May 2007
    Beiträge
    295
    Guten Morgen in die Runde.
    Herzlichen Dank Birgitta für die Anregung. Habs so umgesetzt und läuft natürlich wunderbar :-)
    Dank auch an Holger für seine PUB400.

    greets
    Greets
    Christian
    Anwendungsentwickler und ein bissal Systemoperator
    https://github.com/prsbrc
    LinkedIn

Similar Threads

  1. Noch einmal: Update einer Tabelle mit Wert aus einer anderen
    By Hubert in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 17-10-18, 15:55
  2. SQL-Precompiler
    By DKSPROFI in forum IBM i Hauptforum
    Antworten: 0
    Letzter Beitrag: 19-10-17, 07:54
  3. Nutzung von **free RPG und SQL Precompiler wirft Fehler?
    By Dominic K. in forum NEWSboard Programmierung
    Antworten: 21
    Letzter Beitrag: 14-09-16, 16:43
  4. Antworten: 1
    Letzter Beitrag: 17-10-02, 14:32
  5. FTP auf einer 150er (4.5.0)
    By PS in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 18-01-02, 13:13

Tags for this Thread

Berechtigungen

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