PDA

View Full Version : OVRDBF Informationen im CL ermitteln



harkne
23-09-10, 11:59
Hallo zusammen,

mein Fall ist etwas komplizierter als ich hier darstelle aber zum besseren Verständnis.

Programm PGM001 macht einen OVRDBF und überschreibt die Datei DATEI1 mit dem Member MBR1.

Danach ruft PGM001 das Programm PGM002 auf.

Habe ich im PGM002 irgendwie die Möglichkeit zu erkennen mit welchem Member die Datei DATEI1 überschrieben ist ?

Bitte keine Umgehungen mit Parameter oder Datenbereich. Ich möchte wirklich die Überschreibungsinformation.

Danke

Viele Grüße Harald

mk
23-09-10, 12:20
Hallo


der DSPOVR Befehl kann zumindest eine Liste
ausgeben.

Vielleicht hilfts
gruß
Michael

Fuerchau
23-09-10, 12:25
Dafür musst du folgendes API bemühen:
http://www.google.de/url?url=http://publib.boulder.ibm.com/infocenter/iseries/v5r3/topic/apis/qdmrtvfo.htm&rct=j&sa=U&ei=9zibTIPsIMb5OZT2tPoO&ved=0CBgQFjAA&q=retrieve+override&usg=AFQjCNHxqf3rD-8iOCpCMueBJxU1NXp8og

jajonowak
23-09-10, 12:45
und wie sieht es mit der INFDS aus, kann man da nicht die Informationen abrufen (zumindest nachdem der 1. Satz gelesen wurde)?

lg
Hans-Joachim

wer lesen kann ist klar im vorteil CL !

harkne
24-09-10, 09:07
@jajonowak
Diesen Gedankengang hatte ich auch, allerdings funktioniert dies nur wenn der Dateiname bekannt ist, was bei mir nicht der Fall ist. Das habe ich vergessen dazu zu schreiben.

Ich habe das mit dem von Herrn Fuerchau vorgeschlagenen API gemacht und hat auch sehr gut funktioniert.

Falls es jemand interessiert, nachfolgend ein Programm dem man den Dateinamen mitgibt und entweder das Member mit dem die Datei überschrieben ist zurückbekommt oder das Feld leer ist wenn keine Überschreibugn vorliegt.



************************************************** ***************
f*
f* Program Name : P U T 7 7 R
f*
f* Description : RETURNS THE MEMBER OF SPECIFIED FILE
f* WHICH WAS OVERWRITTEN WITH OVRDBF MBR()
f*
f* Name I/O Type Lenght Description
f* Parameters : Pi§File I *char 10 Overwritten database file
f* Po§Mbr O *char 10 Overwritten with member
f* *blanks = not overwritten with a member
f*
************************************************** ***************
**================================================ ===============
** DS
**================================================ ===============
d P01§Return ds qualified
d BytesReturned 1 4b 0
d BytesAvailable...
d 5 8b 0
d FileName 9 18
d LibraryName 19 28
d MemberName 29 38
d OverrideType 39 48
**
d ds
d P01§OvrLen 1 4b 0
D***
D APIERR DS
D ERRSIZ 1 4B 0 INZ(256)
D ERRLEN 5 8B 0 INZ(0)
D ERRMIC 9 15
D ERRNBR 16 16
D ERRDTA 17 272
**================================================ ===============
** Parameterlist
**================================================ ===============
**<>
c *entry plist
c parm Pi§File 10
c parm Po§Mbr 10
**
**<>
c Pl§QdmRtvFO plist
c parm P01§Return
c parm P01§OvrLen
c parm P01§FmtName 10
c parm P01§FileName 10
C Parm APIERR
**
************************************************** ***************
** Main
************************************************** ***************
c z-add 48 P01§OvrLen
c eval P01§FmtName = 'OVRL0100'
c eval P01§FileName = Pi§File
**
c call 'QDMRTVFO' Pl§QdmRtvFO
**
c eval Po§Mbr = P01§Return.MemberName
**
c eval *inlr = *on
</parameter></entry>