× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



More specifically [and to include message identifiers for searching the archives], the complete request to include both clear of the target member & copy from the source member may be performed as [those] two separate requests in order to prevent the one CPYF MBROPT(*REPLACE) request from failing with CPF2817. The subtlety is that the diagnostic message CPF2869 will transpire when the From Member of the From File has zero records, but no such diagnostic transpires when there is at least one physical row, even if no records are included in the data selected for copy; with that diag, the CPYF fails. The msgCPF2869 suggests that the request to copy data will terminate the copy file request because an "empty from-file member is never copied to a tape or diskette file, or to a physical file member if the *REPLACE value is specified on the MBROPT parameter." IIRC when copying from a join logical file [JLF], the first physical member must have at least one record, and when copying from a multi-format logical file [MFLF], the named RCDFMT() must have "number of index entries" greater than zero or be using dynamic select [DYNSLT] where the physical member has at least one record.

Regards, Chuck

Jim Essinger wrote:
OK - I was somewhat wrong. You get an error if the FROMFILE is
empty and you specify MBROPT(*REPLACE). You also will not have a
cleared TOFILE if that happens. That is why I like the CLRPFM
followed by a CPYF MBROPT(*ADD). No errors, and you have the
TOFILE cleared. That is what I usually want if I am try to copy a
file.

I knew there was a good reason.


On Thu, Mar 25, 2010 at 11:12 AM, Jim Essinger wrote:
If I remember correctly, a CLRPFM does not throw and error
message if the file being cleared contains no records.

The CPYF with the MBROPT(*REPLACE) option will throw an error
if there are no records to replace (the <ed: FROMFILE.FROMMBR>
member is empty).

I prefer the CLRPFM then CPYF MBROPT(*ADD) over the CPYF MBROPT(*REPLACE) followed by a MONMSG.


On Thu, Mar 25, 2010 at 8:39 AM, David FOXWELL wrote:

I've discovered that someone is regularly doing this :

CLRPFM FILE(myfile)
CPYF FROMFILE(myotherfile) TOFILE(myfile) +
MBROPT(*ADD)

as opposed to this :

CPYF FROMFILE(myotherfile) TOFILE(myfile) +
MBROPT(*REPLACE)


in a standard test procedure. Has the programmer found a
subtle difference that I have missed or could results be
different?

As an Amazon Associate we earn from qualifying purchases.

This thread ...

Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

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.