[NEWSboard IBMi Forum]
Seite 1 von 2 1 2 Letzte
  1. #1
    Registriert seit
    May 2013
    Beiträge
    8

    Embedded SQL in RPGLE Programm?

    Hallo,

    ich möchte ein bestehendes RPGLE Programm mit einem Embedded SQL Befehl erweitern. Leider kennt das RPGLE Programm die SQL Befehle nicht. Wenn ich jedoch ein SQLPRGLE Programm erstelle, werden die Befehle erkannt.

    Wie ist die empfohlene Vorgangsweise um embedded SQL Befehle in RPGLE zu nutzen?

  2. #2
    Registriert seit
    Jul 2011
    Beiträge
    4
    Die Teildateiart wurde auf SQLRPGLE geändert?

  3. #3
    Registriert seit
    May 2013
    Beiträge
    8
    ja wenn ich die Teildateiart auf SQLRPGLE ändere funktioniert es. Gibt es Nachteile wenn ich das mache?

  4. #4
    Registriert seit
    Jan 2012
    Beiträge
    1.120
    Das ist die Standard-Vorgehensweise. Nachteile sehe ich nicht. Alternativ könntest du dir ein SQLRPGLE-Tool schreiben, dem du den zu verarbeitenden SQL-Befehl als String mitgibst. Das könntest du dann in jedem RPGLE-Programm aufrufen. Ob das sinnvoll ist, kommt aber auf deine Problemstellung an.
    Dieter

  5. #5
    Registriert seit
    Aug 2001
    Beiträge
    2.873
    Vielleicht zur Information:
    Bei Quellen mit der Quellen-Art SQLRPGLE wird bei der Kompilierung zunächst der SQL Precompiler aufgerufen. Der SQL Precompiler scannt nach SQL Befehlen und den Host-Variablen, die in diesen Befehlen verwendet werden und führt einen Syntax Check durch. Konnte an dieser Stelle kein Fehler gefunden werden, wird die Original-Quelle in eine Quellen-Datei in der QTEMP kopiert, die SQL Befehle auskommentiert, durch API-Aufrufe ersetzt und die SQLCA (Communication Area) sowie einige andere Variablen und Konstanten eingebunden.
    Die konvertierte Quelle wird anschließend durch den normalen Language Compiler gejagt, also entweder mit CRTBNDRPG oder mit CRTRPGMOD umgewandelt.

    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
    Jun 2001
    Beiträge
    1.975
    Ich habs zwar schon länger nicht probiert,
    aber früher (als wir noch einen Kaiser hatten)
    konnte sqlrpgle kein /copy in /copy auflösen

    also:

    PGM:
    ...
    define d_spec
    /copy machwas
    undefine d_spec

    /copy tu_es

    und in machwas
    ...
    if defined tu_es
    /copy d_spec_vom_pgm
    D ...
    D...
    endif

    C ...
    C...

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

  7. #7
    Registriert seit
    Aug 2001
    Beiträge
    2.873
    Auf die Gefahr hin, dass ich wieder mal als "Oberlehrerin" bezeichnet werde.

    Der /COPY wird aufgelöst (über wieviele Verschachtelungen kann im Compile-Befehl hinterlegt werden).

    Der /INCLUDE funktioniert wie ein /COPY wird jedoch vom PreCompiler nicht aufgelöst.

    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
    Nov 2012
    Beiträge
    51

    Stimmt, es war das gleiche Jahrtausend. :-)


  9. #9
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Mit anderen Worten:
    Stelle ich meine Quellen auf IFS um (wie von RDi/RDp o.ä. empfohlen), wobei ich dann auf "/Include" angewiesen bin, kann ich keine SQL-Programme mehr schreiben.

    Wer sich da wohl was bei gedacht hat.

    Ach ja, der PreCompiler kann ja noch nicht mal geschachtelte Copies .
    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

  10. #10
    Registriert seit
    Aug 2001
    Beiträge
    2.873
    Zitat Zitat von Fuerchau Beitrag anzeigen
    Mit anderen Worten:
    Stelle ich meine Quellen auf IFS um (wie von RDi/RDp o.ä. empfohlen), wobei ich dann auf "/Include" angewiesen bin, kann ich keine SQL-Programme mehr schreiben.

    Wer sich da wohl was bei gedacht hat.

    Ach ja, der PreCompiler kann ja noch nicht mal geschachtelte Copies .
    Warum solltest Du denn auf den /INCLUDE angewiesen sein, wenn sich die Quellen im IFS befinden?

    Lt. RPG Referenz kann man in beiden sowohl Teildateien als auch IFS-Dateien angeben.

    The /COPY and /INCLUDE compiler directives cause records from other files to be inserted, at the point where the directive occurs, with the file being compiled.
    The inserted files may contain any valid specification including /COPY and /INCLUDE up to the maximum nesting depth specified by the COPYNESTkeyword (32 when not specified).

    /COPY and /INCLUDE files can be either physical files or IFS files.
    Und verschachtelte Copy-Strecken kann der Precompiler sehr wohl (und zwar schon seit V5R3!). Du must lediglich im Compile Command RPG-Vorprozessoroptionen (RPGPPOPT) auf *LVL1 setzen.

    Ach ja und bei *LVL2 werden auch die (verschachtelten) /INCLUDES aufgelöst.

    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

  11. #11
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Und irgendwo stand auch der Hinweis, dass Copy und Include nicht gemischt werden können.

    Wenn ich schon Quellen (wegen z.B. CVS) im IFS ablege, fange ich ja nicht an zu mischen mit IFS und SRCPF.

    Aber wie so oft, alles Releaseabhängig.
    Was in V7 geht kann ich halt nicht in V5R1 verwenden.
    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

  12. #12
    Registriert seit
    Aug 2003
    Beiträge
    1.508
    Zitat Zitat von Fuerchau Beitrag anzeigen
    Wenn ich schon Quellen (wegen z.B. CVS) im IFS ablege, fange ich ja nicht an zu mischen mit IFS und SRCPF.
    Nur zur Info: wir haben zuerst SVN verwendet, sind letztens auf Mercurial umgestiegen und die Sourcen sind dennoch weiterhin als Members in PFs. Für eine Versionsverwlatung müssen Sourcen nicht zwingend im IFS gespeichert werden.

    lg Andreas

Similar Threads

  1. RPGLE - SQL
    By christian_lettner in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 16-11-06, 10:15
  2. SQL im Programm
    By steven_r in forum NEWSboard Programmierung
    Antworten: 4
    Letzter Beitrag: 19-10-06, 09:12
  3. Embedded SQL in VARPG
    By Squall in forum NEWSboard Programmierung
    Antworten: 23
    Letzter Beitrag: 18-10-06, 12:01
  4. SQL .. for update of (RPG embedded SQL)
    By loeweadolf in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 01-06-06, 09:43
  5. Character verbinden in Embedded SQL
    By e_sichert in forum NEWSboard Programmierung
    Antworten: 3
    Letzter Beitrag: 03-05-06, 10:47

Tags for this Thread

Berechtigungen

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