|
Alan, the library list has no meaning if you are creating the files with an explicit library (QTEMP) unless you have a hard coded library name in the DDS. I am making an assumption that you are creating the files in your interactive program and not submitting the job to batch. Using the code provided, the command will create the physical file in QTEMP with the following attributes. 1/11/07 Display File Description DSPFD Command Input File . . . . . . . . . . . . . . . . . . . : FILE PHYFILE Library . . . . . . . . . . . . . . . . . : QTEMP Record Format List Record Format Level Format Fields Length Identifier PFMBR 3 70 205E368F48128 You then create the logical file in QTEMP with another explicit value for the library and the datamember (also in your interactive job). THIS CAN BE DONE IN BATCH WITH A CL PROGRAM, BUT YOU WILL LOSE THE FILES WHEN THE PROGRAM COMPLETES. At this point you will have a physical and logical file in QTEMP with no data. This is the information from a DSPDBR command. 1/11/07 Display Data Base Relations DSPDBR Command Input File . . . . . . . . . . . . . . . . . . . : FILE PHYFILE Library . . . . . . . . . . . . . . . . . : QTEMP Member . . . . . . . . . . . . . . . . . . : MBR *NONE Record format . . . . . . . . . . . . . . . : RCDFMT *NONE Output . . . . . . . . . . . . . . . . . . : OUTPUT * Specifications Type of file . . . . . . . . . . . . . . . : Physical File . . . . . . . . . . . . . . . . . . . : PHYFILE Library . . . . . . . . . . . . . . . . . : QTEMP Member . . . . . . . . . . . . . . . . . : *NONE Record format . . . . . . . . . . . . . . : *NONE Number of dependent files . . . . . . . . : 1 Files Dependent On Specified File Dependent File Library Dependency JREF Constraint LOGFILE QTEMP Data You can then use your edit member of choice (DBU, DFU, etc) to add a record to the file or do a CPYF from the production library to the file in QTEMP and you will have data accessible from both the logical and physical view. Here is a sample record added to the physical file. DATA BASE UTILITY (DBU) File . . . : PHYFILE Member . . : PHYFILE Record Length . : 70 Library . : QTEMP Format . . : PFMBR File Access . . : Arrival Page# . . . : 1 of 1 Mode . . . : Display Record Number . : 1 Control . . . Text . . . : Tteval SAMPLE RECORD Ttival TEST Shan ANOTHER FIELD The library list has no meaning if you explicitly put in QTEMP as the file library. IT has been this way since the System/38 and the pre-release version of OS/400 WAyyyy back in 88. Clyde -----Original Message----- From: Alan Shore [mailto:AlanShore@xxxxxxxx] Sent: Thursday, January 11, 2007 4:07 PM To: Midrange Systems Technical Discussion Subject: Re: Creating a physical AND Logical file Thanks Jerry. (and Elvis) For some reason the way Elvis explained the situation, it just was NOT sticking to my brain. Through various testing, I've come to realize that the library QTEMP HAS to be above the PRODUCTION library in creating the QTEMP physical and QTEMP logical. So it looks like for the creation of the logical, I will have to temporarily move QTEMP. As far as Audit is concerned, the *USERS don't have *OBJMGT therefore couldn't directly use CRTDUPOBJ, and I was contemplating creating a program that adopts owner authority to do this when I found out that the PRODUCTION file is also created on the fly, so if I tried to CRTDUPOBJ when the file wasn't there, it wouldn't have worked anyway, hence the CRTPF along with CRTLF. Thanks to ALL who supplied answers. Alan Shore NBTY, Inc (631) 244-2000 ext. 5019 AShore@xxxxxxxx midrange-l-bounces@xxxxxxxxxxxx wrote on 01/11/2007 04:38:41 PM:
Alan, Is QTEMP lower in the library list than the Production library?
That's
really a rhetorical question since the LF is being created over the Production file. What Elvis was trying to say was, unless the library is specified in
the
LF's DDS (such as R HSTLINR PFILE(HISTORY/HSTLIN) ), the LF will be created over the first *File object by the name of the PFILE( ) that it finds. If the library is coded in the PFILE( ) statement, the library list is irrelevant (i.e., will not be used).
So
Elvis was suggesting putting QTEMP at the top of your system library list (which would have been the effect if it had not already existed
in
the library list somewhere - system or user portion). I know this works; did it last week on a project and again this morning on another
one.
So the issue, in brief, is to get QTEMP ahead of the Production library. There are a myriad of ways to do this and things to
consider,
not least of which is the state of the library list when the process ends. If you use RMVLIBLE QTEMP before doing a CHGSYSLIBL or an ADDLIBLE, you won't get the error you mentioned. Audit is audit and no getting around that, as you say. I am curious, though, how one audits QTEMP regardless of the method used to create
the
table? I was led to believe that even the NSA would have a fit retrieving stuff from there once the job ends. * Jerry C. Adams *IBM System i5/iSeries Programmer/Analyst B&W Wholesale Distributors, Inc.* * voice 615.995.7024 fax 615.995.1201 email jerry@xxxxxxxxxxxxxxx <mailto:jerry@xxxxxxxxxxxxxxx> Alan Shore wrote:Sorry Elvis - this wont work with the command CHGSYSLIBL QTEMP *ADD the error message is Library QTEMP already exists in library list. Alan Shore NBTY, Inc (631) 244-2000 ext. 5019 AShore@xxxxxxxx midrange-l-bounces@xxxxxxxxxxxx wrote on 01/11/2007 02:34:19 PM:CHGSYSLIBL QTEMP *ADD ... create your LFs .... CHGSYSLIBL QTEMP *REMOVE Celebrating 10-Years of SQL Performance Excellence -----Original Message----- Subject: RE: Creating a physical AND Logical file Thanks Nick, but unfortunately that picks up the physical file thatresidesin an earlier library on the library list Alan Shore -- This is the Midrange Systems Technical Discussion (MIDRANGE-L)
mailing
listTo post a message email: MIDRANGE-L@xxxxxxxxxxxx To subscribe, unsubscribe, or change list options, visit: http://lists.midrange.com/mailman/listinfo/midrange-l or email: MIDRANGE-L-request@xxxxxxxxxxxx Before posting, please take a moment to review the archives at http://archive.midrange.com/midrange-l.-- This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing
list
To post a message email: MIDRANGE-L@xxxxxxxxxxxx To subscribe, unsubscribe, or change list options, visit: http://lists.midrange.com/mailman/listinfo/midrange-l or email: MIDRANGE-L-request@xxxxxxxxxxxx Before posting, please take a moment to review the archives at http://archive.midrange.com/midrange-l.
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.