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

Thema: SQL umwandlun

  1. #1
    Registriert seit
    Jun 2001
    Beiträge
    1.975

    SQL umwandlun

    Hi *all

    habe hier ein SQLRPGLE Pgm das sich im Spool wie folgt präsentiert:
    Code:
    C                   CLEAR                   I                                        
                                                                                         
    C*EXEC SQL                                                                           
    C*        SET :I =                                                                   
    C*            ( SELECT COUNT(*) FROM EPBM1                                           
    C*                    WHERE EPBKATE = :IN_EPAKATE AND                                
    C*                          EPBADRE = :IN_EPAADRE AND                                
    C*                          EPBAUF1 = :IN_EPAAUF1 AND                                
    C*                          EPBLSFR = :IN_EPALSFR AND                                
    C*                          EPBSTAT <= '0' )                                         
    C*END-EXEC                                                                           
    C                   EVAL      SQL_00005    = IN_EPAKATE                    SQL       
    C                   EVAL      SQL_00006    = IN_EPAADRE                    SQL       
    C                   EVAL      SQL_00007    = IN_EPAAUF1                    SQL       
    C                   EVAL      SQL_00008    = IN_EPALSFR                    SQL       
    C                   Z-ADD     -4            SQLER6                         SQL   1   
    C                   CALL      SQLROUTE                                     SQL       
    C                   PARM                    SQLCA                          SQL       
    C                   PARM                    SQL_00000                      SQL       
    C     SQL_00003     IFEQ      '1'                                          SQL
    C                   EVAL      I = SQL_00009                                SQL
    C                   END                                                    SQL
                                                                                  
    C                   IF        I <= 0
    Und der Umwandlungsfehler ist, das SQL_00003 nicht definiert ist!
    Logischerweise ist KEIN SQL_000... Feld definiert ! War auch noch nie!
    Kann mir jemand das PTF nennen, das mir fehlt?
    V7R1, letzte 'komplettierung' ca vor 8 Tagen

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

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Die SQL-Felder werden vom Precompiler automatisch generiert.
    Ggf. passiert dieser Fehler bei der Umwandlung im Dialog wenn die QTEMP nicht bereinigt ist.
    Versuche mal im Batch zu wandeln bzw. nach einer Neuanmeldung im Dialog.
    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

  3. #3
    Registriert seit
    Jun 2001
    Beiträge
    1.975
    Wir wandeln quasi immer im Batch.
    Habe aber mal auf Interact umgeschaltet, selbe Ergebnis.
    Robi
    Das Notwendige steht über dem technisch machbaren.
    (klingt komisch, funktioniert aber!)

  4. #4
    Registriert seit
    Dec 2004
    Beiträge
    203
    Hallo.

    Fehlt der SQL_00003 in den D Bestimmungen ?
    Sind also SQL_00001 -2 und 4 - x vorhanden ?
    Gruß,
    Ralf

  5. #5
    Registriert seit
    Aug 2003
    Beiträge
    1.508
    Probier mal beim Umwandeln den Parameter
    RPG-Vorprozessoroptionen . . . . RPGPPOPT > *LVL2

  6. #6
    Registriert seit
    Mar 2002
    Beiträge
    5.287
    ... ich tippe mal darauf, dass die fehelende Variable mit falschem Scope (lokal) generiert worden ist. Was sagt denn die Umwandlungsliste?

    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/

  7. #7
    Registriert seit
    Jun 2001
    Beiträge
    1.975
    @TheDevil
    Im HauptPgm ist kein SQL_0* definiert (worden)
    Aber das Pgm hat eine Procedur, die auch SQL verwendet.
    dort sind (im Spool) die variablen SQL_00010 bis 00017 definiert
    1 bis 10 ist nicht definiert, verwendet wird auch nur 0, 3, 5, 6, 7 und 9 die alle als 7030er Fehler auftauchen

    @Dieter
    Was meinst du? hilft o.a. Beschreibung

    @Andreas
    mach ich, dauert aber ein wenig. Das ist bei uns alles in 'automatiken' verdrahtet die ich dann händisch
    zusammen suchen muß.
    Das Notwendige steht über dem technisch machbaren.
    (klingt komisch, funktioniert aber!)

  8. #8
    Registriert seit
    Mar 2002
    Beiträge
    5.287
    gibt es nun irgendwo die Variable SQL_00003 oder nicht???
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  9. #9
    Registriert seit
    Jun 2001
    Beiträge
    1.975
    Alle SQL_ Variablen des obrigen Codes sind lt. Spool NICHT definiert.
    Auch nicht in der Source durch uns. Sie fehlen!
    Last edited by Robi; 18-03-14 at 16:45. Grund: ergänzung
    Das Notwendige steht über dem technisch machbaren.
    (klingt komisch, funktioniert aber!)

  10. #10
    Registriert seit
    Mar 2002
    Beiträge
    5.287
    ... wie wandelst du denn? ich mache da z.B.:
    CRTSQLRPGI T_TN
    OBJTYPE(*MODULE)
    DBGVIEW(*SOURCE)
    COMMIT(*CS)
    RDB(*LOCAL)
    CRTPGM T_TN
    ACTGRP(T_TN)
    und habe die vom Precompiler generierten Variablen in der Umwandlungsliste. Bei dir sind da sicherlich ein paar lokal gelandet. Mach mal irgendein SQL Statement in den main Teil dann funzt das.
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  11. #11
    Registriert seit
    Aug 2001
    Beiträge
    2.873
    Das Problem tritt manchmal auf, wenn keine globalen D-Bestimmungen im Quellcode vorhanden sind.
    Füge einfach eine Dummy globale D-Bestimmung ein und wandle nochmal um. (D in Position 6 sollte genügen, ansonsten füge einfach eine globale Variable ein)
    Dann sollten alle SQL_ Variablen vorhanden sein.

    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

  12. #12
    Registriert seit
    Jun 2001
    Beiträge
    1.975
    @Dieter
    CRTSQLRPGI OBJ(&OBJLIB/&MBR) SRCFILE(&LIBRPG/&FILE) +
    OBJTYPE(*MODULE) TGTRLS(&TGTRLS) ist der Befehl,

    &TGTRLS ist allerdings V5R4M0 (das hab ich per debug auf V7R1M0 gestellt, ohne erfolg)

    cmddft's sind
    RDB(*LOCAL)
    DBGVIEW(*SOURCE)
    Commit(*none)

    Ich bekomme kein Modul

    @Birgitta
    leider nicht, das Pgm hat einige Globale D Bestimmungen.

    @Andreas
    mit geändertem
    rpgppopt(*LVl2)
    hat es geklapt.

    kannst du das erklären?
    Danke an alle, Robi
    Das Notwendige steht über dem technisch machbaren.
    (klingt komisch, funktioniert aber!)

Berechtigungen

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