× 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.



Joel,
By using the OVRDBF command with SHARE(*YES), the COBOL program will read
the file using the Access Path created by the OPNQRYF.



On Wed, Sep 25, 2013 at 10:24 AM, Stone, Joel <Joel.Stone@xxxxxxxxxx> wrote:

Have you actually tried this? I don't think that this will work as you
are proposing.

When you run OPNQRYF, if creates the equivalent of a temp LF. When COBOL
reads this temp LF, it will read it as a PF (assuming no changes to the
COBOL pgm to access C1BMNAM by key).

You would have to do CPYFRMQRYF after the OPNQRYF to order the physical
data - then the COBOL pgm would read in the sequence that you desire.

If the requirement is to NOT touch the COBOL pgm, then the physical data
must be re-ordered. I would expect FMTDTA to be faster than
OPNQRYF/CPYFRMQRYF or any other method.

But, it is so simple to change the COBOL to read an indexed file. Maybe
there are other constraints which require no changes to the COBOL.

Another option is SQL to re-order the data.

I don't see how OPNQRYF or LF or any kind of index will get you there.



-----Original Message-----
From: midrange-l-bounces@xxxxxxxxxxxx [mailto:
midrange-l-bounces@xxxxxxxxxxxx] On Behalf Of Zak Metz
Sent: Tuesday, September 24, 2013 2:09 PM
To: MIDRANGE-L@xxxxxxxxxxxx
Subject: Sort input file by arbitrary position/length

I have an existing COBOL application that cannot be changed, at least,
let's say it can't.
The COBOL application accepts an input file of an arbitrary record length
like so:
SELECT C1BMNAM
ASSIGN TO DISK-C1BMNAM
FILE STATUS C1BMNAM-FILE-STATUS
.
I want it to process the file sorted by a certain position/length (ZIP
Code) determined at run time. But if I create an LF, it doesn't read it in
order by key.
What I thought I could do was use OPNQRYF to do that sorting on the fly,
something like:
OPNQRYF FILE((METZ3410/PF)) KEYFLD((*MAPFLD/ZIP)) MAPFLD((ZIP '%sst(pf 133
5)')) OPNID(C1BMNAM) SEQONLY(*NO) OPNSCOPE(*JOB)
That works for a file with one field. The COBOL is none-the-wiser.
But the input file might have multiple fields. All I know is the
position/length.
Is there some way to make my MAPFLD substring the entire record without
knowing what field the position/length actually falls into? I just want to
substring the entire record.
Because the file may be very large, I do not want to take the performance
hit of copying it to a single-field file. But if there were some other way
to trick it...
Thanks in advance for any and all suggestions.

Zak Metz, Principal Software Engineer
Pitney Bowes Software
1664 Princess Ln | Frisco TX | 75034-8715 | USA
507-384-9069 | www.pb.com<http://www.pb.com/>
zak.metz@xxxxxx<mailto:zak.metz@xxxxxx>

Every connection is a new opportunity(tm)


________________________________

--
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.


________________________________________________________________________
This inbound email has been scanned for all viruses by the MessageLabs
SkyScan
service.
________________________________________________________________________

______________________________________________________________________
This outbound email has been scanned for all viruses by the MessageLabs
Skyscan service.
For more information please visit http://www.symanteccloud.com
______________________________________________________________________
--
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 thread ...

Follow-Ups:
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.