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

Thema: SQL XML

Hybrid View

  1. #1
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Wo und wie ist denn MYXMLDOC definiert und wie passiert dann der Export ins IFS?
    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

  2. #2
    Registriert seit
    Jun 2001
    Beiträge
    2.044
    Guten morgen Baldur!
    Wo und wie ist denn MYXMLDOC definiert
    MYXMLDOC_NAME = '/HOME/RJ/MYXMLDOC.XML';
    und wie passiert dann der Export ins IFS?
    MYXMLDOC_NAME = '/HOME/RJ/MYXMLDOC.XML';

    Den Rest macht OS/400!

    Das Pgm ist recht klein, schreib es ab, es funktioniert!

    Robi
    Das Notwendige steht über dem technisch machbaren.
    (klingt komisch, funktioniert aber!)

  3. #3
    Registriert seit
    Jun 2001
    Beiträge
    2.044
    Wir machen das nur für einfache xml
    Warscheinlich sind auch etwas komplexere Strukturen möglich, aber da fehlt uns die Übersicht.
    Daher machen wir dann die hier angerissene Methode.
    Robi
    Das Notwendige steht über dem technisch machbaren.
    (klingt komisch, funktioniert aber!)

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Tut mir Leid, der SQL-Precompiler meldet:
    MYXMLDOC nicht definiert oder nicht verwendbar.

    Mir ist auch unbekannt, dass Variablen neuerdings nicht definiert werden müssen.
    Vielleicht werden wir beider ja schlauer, wenn man mal das Compiler-Listing sieht.
    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
    Jun 2001
    Beiträge
    2.044
    Ok, sorry,
    hab meins grade noch mal gewandelt.
    0 fehler
    es ist o.g. source als sqlrpgle, mit 14 für v7r1 gewandelt (geht auch früher, k.a. welches release wir damals hatten)
    Generierungsbewertungsstufe . . : 10
    Standardaktivierungsgruppe . . . : *YES
    Umwandlungsprogrammauswahlmögl. : *XREF *GEN *NOSECLVL *SHOWCPY
    *EXPDDS *EXT *NOSHOWSKP *NOSRCSTMT
    *DEBUGIO *UNREF *NOEVENTF
    Testhilfesichten . . . . . . . . : *ALL
    der precompler meldet quasi nur die source nochmal,

    Habe aber (seit einem SQL Fehler, auf Empfehlung von Andreaspr@aon.at) rpgppopt *LVL2
    im cmddft

    versuch das mal
    Robi
    Das Notwendige steht über dem technisch machbaren.
    (klingt komisch, funktioniert aber!)

  6. #6
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Dies macht keinen Unterschied, da ja keine Copies vorhanden sind.
    Der Fehler ist derselbe.

    Ich habe mir alle Beispiele im SQL-Programmierhandbuch V7R1 angesehen, mit IFS-Ausgabe ist da nichts und beim "Select .. into " muss eine Hostvariable angegeben werden.

    Also irgendwo wird da bei euch was gezaubert.
    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

  7. #7
    Registriert seit
    Jun 2001
    Beiträge
    2.044
    Zaubern kann ich (leider) nicht!
    Was soll ich machen?
    Montag mal ne PC-Visit Sitzung? (meine Kiste fährt grade runter)
    Ich kann dir das gerne zeigen.
    Und da ich auf die schnelle mit 14 gewandelt habe, greift auch nicht unsere recht komplexe UW-Automatik
    schönes WE
    Montag?
    Gruß
    Robi
    Das Notwendige steht über dem technisch machbaren.
    (klingt komisch, funktioniert aber!)

  8. #8
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Ich denke, da fehlen ein paar OS-Optionen bei der Installation des OS/400, ich werde mal nachfragen ob die noch installiert werden können.
    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

  9. #9
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    ... ich tippe mal, dass die vermeintliche Source nicht die Quelle des vorhandenen Programmes ist. Falls der Pre Compiler das durchlassen würde, hätte der Compiler beim clear MYXMLDOC die nächsten Einwände anzumelden...

    D*B
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  10. #10
    Registriert seit
    Jun 2001
    Beiträge
    2.044
    Da tippst du falsch!
    die 14 nimmt normal die Quelle vor der sie gemacht wird.
    das myxmldoc ist ne DS
    (Sitze am handy, mei e kiste ist aus)
    Hast du es probiert?
    Das Notwendige steht über dem technisch machbaren.
    (klingt komisch, funktioniert aber!)

  11. #11
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    ... erst Brille putzen!!! In der Quelle hier im Forum ist keine DS deklariert...
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  12. #12
    Registriert seit
    Aug 2001
    Beiträge
    2.928
    Robis Quelle ist schon korrekt.
    Er hat lediglich vergessen die D-Bestimmungen, sprich die Definition der XML_CLOB_File mitzukopieren.
    Das XML-Dokument wird direkt mit dem SELECT ... INTO in das IFS geschrieben.
    Wird eine XML_CLOB_FILE definiert wird das XML-Dokument in die in der der Option SQL_XML_DATA_CCSID in der Abfrage-Options-Datei QAQQINI angegebene CCSID konvertiert. Default-Wert der Option ist 1208 (=UTF-8)

    Code:
    D MyXMLDOC        S                     SQLTYPE(XML_CLOB_FILE)     
     
    C/EXEC SQL   SET OPTION  COMMIT=*NONE, DATFMT=*ISO, TIMFMT=*ISO, 
    C+                       NAMING=*SYS,  CLOSQLCSR=*ENDACTGRP      
    C/END-EXEC  
     /FREE                                                           
        CLEAR MYXMLDOC;                                              
        MYXMLDOC_NAME = '/HOME/RJ/MYXMLDOC.XML';                     
        MYXMLDOC_NL   = %LEN(%TRIM(MYXMLDOC_NAME));                  
        MYXMLDOC_FO   = SQFOVR;       //REPLACE IF EXISTS            
                                                                     
        EXEC SQL                                                     
            SELECT XMLDOCUMENT                                       
                     (XMLGROUP(ADR006 AS "D_C",                      
                               ADR007 AS "NUMMER",                   
                               ADR009 AS "INTERN-NAME",              
                               ADR018 AS "STREET",                   
                               ADR015 AS "ZIPCODE",                  
                               ADR020 AS "CITY"                      
                               ORDER BY ADR015 DESC, ADR009          
                               OPTION ROW "KUNDEN"  
                                   ROOT "ADRESSEN"))         
                  INTO :MYXMLDOC                             
                  FROM ADRM1;                                
                                                             
          *INLR       = *ON;                                 
         /END-FREE
    Das Ganze klappt natürlich auf für komplexere XML-Dokumente.
    Übrigens mit File-Reference-Variablen kann man mit embedded SQL direkt ins IFS schreiben und natürlich auch aus dem IFS lesen.

    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

Berechtigungen

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