-
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?
-
Die Teildateiart wurde auf SQLRPGLE geändert?
-
ja wenn ich die Teildateiart auf SQLRPGLE ändere funktioniert es. Gibt es Nachteile wenn ich das mache?
-
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
-
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
-
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!)
-
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
-
Stimmt, es war das gleiche Jahrtausend. :-)
-
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 .
-
Zitat von Fuerchau
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
-
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.
-
Zitat von Fuerchau
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
-
By christian_lettner in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 16-11-06, 10:15
-
By steven_r in forum NEWSboard Programmierung
Antworten: 4
Letzter Beitrag: 19-10-06, 09:12
-
By Squall in forum NEWSboard Programmierung
Antworten: 23
Letzter Beitrag: 18-10-06, 12:01
-
By loeweadolf in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 01-06-06, 09:43
-
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
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks