• The Four Hundred
  • Subscribe
  • Media Kit
  • Contributors
  • About Us
  • Contact
Menu
  • The Four Hundred
  • Subscribe
  • Media Kit
  • Contributors
  • About Us
  • Contact
  • Don’t Let Overrides Deceive You

    June 2, 2004 Cletus the Codeslinger

    [The code for this article is available for download.]

    Overrides have some nice advantages. Without overrides, I would have to clone programs in order to use different files of the same format. Overrides also let me use different members of a multi-member file. Sometimes it’s helpful to know which file or member was used to produce a certain report or display. OS/400 includes an easy-to-use API that eliminates the confusion.

    The API I’m referring to is Retrieve File Override Information (QDMRTVFO). Maybe the best way to introduce it is to show the prototype member I /COPY into programs that call QDMRTVFO.

    D QDMRTVFO        PR                  EXTPGM('QDMRTVFO') 
    D  Outfo                        48a                      
    D  OutfoLen                     10i 0 CONST              
    D  FormatName                    8a   CONST              
    D  FileName                     10a   CONST              
    D  ErrorDS                      16a                      
    
    D OutfoErrorDS    DS            16    QUALIFIED          
    D   BytesProv                   10i 0 inz(16)            
    D   BytesAvail                  10i 0                    
    D   ExceptionID                  7                       
    
    D OutfoDS         DS            48    QUALIFIED          
    D   BytesReturn                 10i 0                    
    D   BytesAvail                  10i 0                    
    D   FileName                    10a                      
    D   LibName                     10a                      
    D   MemberName                  10a                      
    D   OvrType                     10a
    

    QDMRTVFO takes five parameters:

    • A 48-byte data structure into which the API will load the override information. In this copy member, this data structure has the name OutfoDS.

    • A 4-byte integer containing the length of the data structure. This seems unnecessary, but is provided to allow you to pass a shorter data structure, if you wish.

    • An 8-byte format name. The only supported value to date is OVRL0100.

    • The name of the file being overridden.

    • The usual error data structure used with APIs. In this copy member, the error data structure is OutfoErrorDS.

    Here’s a short RPG program that illustrates how to use QDMRTVFO. This program reads and lists the PDM options file, QAUOOPT.

    The API is called in the RtvOverride subroutine. If there is an override over QAUOOPT, the subfields of the OutfoDS data structure will have values. If there is no override, the subfields will come back blank.

    –Cletus the Codeslinger

    Ted Holt responds: This reminds me of a similar technique that can be used with native I/O operations. There are three subfields in the file information data structure that return the name of the database file member that is being used and the name of the library that contains them.

    FSomeFile  if   e             disk    infds(SomeDS)
    
    D SomeDS          ds
    D    File                83     92
    D    Lib                 93    102
    D    Mbr                129    138 
    

    But that technique doesn’t work with SQL, as yours does.

    Share this:

    • Reddit
    • Facebook
    • LinkedIn
    • Twitter
    • Email

    Tags:

    Sponsored by
    Manta Technologies

    The Leader in IBM i Education!
    Need training on anything i?
    Manta is all you need.

    130 courses and competency exams on:
    · IBM i operations
    · System Management and Security
    · IBM i Programming Tools
    · Programming in RPG, COBOL, CL, Java
    · Web Development

    SQL, DB2, QueryProduct features:
    · Runs in every popular browser
    · Available 24/7/365
    · Free Student Reference Guides
    · Free Student Administration
    · Concurrent User License
    · Built-In IBM i Simulator

    You can download our 200-page catalog and take sample sessions at MantaTech.com

    Share this:

    • Reddit
    • Facebook
    • LinkedIn
    • Twitter
    • Email

    ASNA Updates Visual RPG for .NET Development Tool How the eServer i5s Stack Up Against the iSeries

    Leave a Reply Cancel reply

Volume 4, Number 19 -- June 2, 2004
THIS ISSUE
SPONSORED BY:

Advanced Systems Concepts
Guild Companies
WorksRight Sofware
Guild Companies
GST

Table of Contents

  • Pooling Your DataSources
  • Don’t Let Overrides Deceive You
  • Query/400 and Multiple Detail Lines
  • Admin Alert: Checking Your iSeries Batteries
  • OS/400 Alert: Windows XP Service Pack 2 Beta

Content archive

  • The Four Hundred
  • Four Hundred Stuff
  • Four Hundred Guru

Recent Posts

  • Tool Aims To Streamline Git Integration For Old School IBM i Devs
  • IBM To Add Full System Replication And FlashCopy To PowerHA
  • Guru: Decoding Base64 ASCII
  • The Price Tweaking Continues For Power Systems
  • IBM i PTF Guide, Volume 27, Numbers 31 And 32
  • You Can Now Get IBM Tech Support For VS Code For i
  • Price Cut On Power S1012 Mini Since Power S1112 Ain’t Coming Until 2026
  • IBM i: Pro and Con
  • As I See It: Disruption
  • IBM i PTF Guide, Volume 27, Number 30

Subscribe

To get news from IT Jungle sent to your inbox every week, subscribe to our newsletter.

Pages

  • About Us
  • Contact
  • Contributors
  • Four Hundred Monitor
  • IBM i PTF Guide
  • Media Kit
  • Subscribe

Search

Copyright © 2025 IT Jungle