Anmelden

View Full Version : Embedded SQL in ILE RPG Service PGM



DEVJO
19-05-09, 15:47
Moin moin,

ich habe ein Service Programm (ILE RPG) in welchem ich sämtliche I/O Operationen auf eine bestimmte Datei durch führe.
Nun brauch ich aus n Datensätzen den Datensatz zwischen welchen ein bestimmtes Datum fällt.
Beispiel:

Satz A gültig vonDat 01.01.2001 bisDat 01.01.2002
Satz B gültig vonDat 02.01.2002 bisDat 01.01.2003
Satz C gültig vonDat 02.01.2003 bisDat 01.01.2004

Angefordertes Datum : 07.05.2002 (folglich Satz B)

Ich habe mir auch ein nettes SQL Statement zusammen gebastelt was (meiner Meinung nach) funktionieren sollte.


c/exec sql
c+ select * from Datei where
c+ Gebiet = :In_Gebiet and
c+ Ort = :In_Ort and
c+ Hotel = :In_Hotel and
c+ ReiArt = :In_ReiArt and
c+ VonDat > :In_ReiDat and
c+ BisDat < :In_ReiDat
c/end-exec

Problem ist nun die Umwandlung :o Es soll ein *SRVPGM werden aus einem Modul erstellt. Das Statement befindet sich übrigens in einer internen Prozedur innerhalb des Service Programmes.
Da meine Kenntnisse im Bereich SQL bisher eher ...... bescheiden (um es mal nett zu formulieren) sind bekomme ich es einfach nicht hin.
Ich habe probiert:
QSYS/CRTSQLRPGI OBJ(SRV_OB_ORA) COMMIT(*NONE)
und
QSYS/CRTSQLPKG PGM(SRV_OB_ORA) OBJTYPE(*SRVPGM) MODULE(*ALL)
leider führten keiner der Wege nach Rom.....
Gibt es hier jemanden der mir einen kurzen Klaps auf den Hinterkopf geben kann?

Fuerchau
19-05-09, 16:07
CRTSQLRPGI ... OBJTYPE(*SRVPGM)

Du solltest zur Sicherheit noch

H DFTACTGRP(*NONE) ACTGRP(*CALLER)

und ggf.

exec sql set option commit=*none;

angeben.

B.Hauser
19-05-09, 16:10
Hallo,

embedded SQL-(Service)Programme können genau wie normale RPG-(Service)Programme in 2 Stufen erstellt werden:


Erstellen Modul z.B. mit Auswahl 15 im PDM.
Binden des Module in ein Service-Programm mittels CRTSRVPGM.


Ansonsten hat man beim Befehl CRTSQLRPGI eine Option "Art der Kompilierung" bzw. ObjType bei der man die Option *SRVPGM angeben kann, wodurch direkt ein Service-Programm erstellt wird.
(Allerdings habe ich es bislang noch nie auf diesem Weg versucht, da ich immer 2-stufig kompiliere).

Birgitta

DEVJO
19-05-09, 16:23
Super :) danke für den Klaps ...... das mit *SRVPGM hab ich komplett übersehen ...... ist halt auch schon spät :o