[NEWSboard IBMi Forum]

Thema: SQL umwandlun

Hybrid View

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

  2. #2
    Registriert seit
    Mar 2002
    Beiträge
    5.379
    ... 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/

  3. #3
    Registriert seit
    Jun 2001
    Beiträge
    2.044
    @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!)

  4. #4
    Registriert seit
    Mar 2002
    Beiträge
    5.379
    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/

  5. #5
    Registriert seit
    Jun 2001
    Beiträge
    2.044
    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 17:45. Grund: ergänzung
    Das Notwendige steht über dem technisch machbaren.
    (klingt komisch, funktioniert aber!)

  6. #6
    Registriert seit
    Mar 2002
    Beiträge
    5.379
    ... 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/

  7. #7
    Registriert seit
    Aug 2001
    Beiträge
    2.934
    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 - 5. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  8. #8
    Registriert seit
    Jun 2001
    Beiträge
    2.044
    @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!)

  9. #9
    Registriert seit
    Aug 2003
    Beiträge
    1.508
    Das Problem hab ich auch schon öfters gehabt, dass wenn z.B. Copy-Strecken oder Proceduren mit SQL verwendet werden, der Pre-Kompiler dies nicht richtig erkennt.
    Mit *LVL2 wird alles brav aufgelöst und korrekt umgewandelt.

    lg Andreas

  10. #10
    Registriert seit
    Mar 2002
    Beiträge
    5.379
    ... bei deinem Umwandlungsbefehl bekomme ich auch die vom Precompiler generierten Variablen in die Umwandlungsliste des RPG Compilers?!?!?!

    Das Problem des Precompilers ist die lausige Qualität, der will globale Variablen generieren, findet aber zuweilen die richtige Stelle nicht und generiert diese in die erste Procedure. Damit sind sie dann lokal und werden in anderen Procedures nicht gefunden. Dass das dann mit einer damit nichts zutun habenden Compile Option geheilt wird, ist wohl ein weiterer Schmutzefekt, der den anderen aufhebt.

    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/

  11. #11
    Registriert seit
    Aug 2001
    Beiträge
    2.934
    @Robi

    RPGPPOPT *LVL2 löst alle Copy-Strecken auf!
    Das deutet daraufhin, dass zu zwar globale D-Bestimmungen hattest, aber diese in Copy-Strecken versteckt.
    Wie gesagt einfach eine LEERE D-Bestimmung vor dem 1. C oder P-Statement uns schon klappts.

    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

  12. #12
    Registriert seit
    Jun 2001
    Beiträge
    2.044
    @Birgitta
    Ich weis das du meistens recht hast. Hier aber leider nicht.
    Das Pgm hat diverse /copy und auch diverse 'solo' D-Zeilen (global)

    Fals es noch jemand interesiert: Das Pgm ist über 5 Jahre alt und wurde vor einigen Tagen zum 12 mal erweitert. Es gab NIE Umwandlungsprobleme. Nur jetzt, warsch. durch irgend eine PTF-Aktion ausgelöst. Alles im PGM im bereich SQL ist 'alter' Kram
    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
  •