• The Four Hundred
  • Subscribe
  • Media Kit
  • Contributors
  • About Us
  • Contact
Menu
  • The Four Hundred
  • Subscribe
  • Media Kit
  • Contributors
  • About Us
  • Contact
  • Stuffing Five Digits Into Four

    September 27, 2006 Ted Holt

    How do you stuff five digits into a four-digit database field? I found out recently that it can be done. Suppose you have a database file with a four-digit binary field.

    A          R REC                
    A            FIELD4         4B  
    

    If you use the Display File Field Description (DSPFFD) command to view the record layout of the file, you will find that FIELD4 occupies two bytes of storage. Two bytes can hold values from -32,768 to 32,767. (For more about why this is so, see When a 10-Digit Variable Won’t Hold a 10-Digit Number.

    If you use traditional I/O to try to put a value such as 32,767 into FIELD4, you will be treated to a series of rude messages. Here’s a short RPG program.

    FSomeFile  o    e             disk               
    D value           s              5i 0 inz(32767)
    D                                                
     /free                                           
          *inlr = *on;                               
          FIELD4  = value;                           
          write rec;                                 
          return;
    

    (No, you don’t have to code the /end-free directive.)

    And here are the rude messages you will get when you run the program.

    MCH1210 (Receiver value too small to hold result.)
    RNQ0103 (The target for a numeric operation is too small to hold the result (C G D F).)

    So, how do you load five digits into FIELD4? Use SQL! Here’s the same RPG program rewritten with SQL.

    D value           s              5i 0 inz(32767) 
    D                                                 
    C                   eval      *inlr = *on         
    C/exec sql                                        
    C+  insert into SomeFile (field4)                 
    C+     values(:value)                           
    C/end-exec                                        
    C                   return
    

    SQL inserts the value 32,767 without complaint.

    You’ll also run into the same behavior when retrieving data from the file. Traditional I/O chokes, but SQL doesn’t care.

    What interesting times we live in.

    RELATED STORY

    When a 10-Digit Variable Won’t Hold a 10-Digit Number

    Share this:

    • Reddit
    • Facebook
    • LinkedIn
    • Twitter
    • Email

    Tags:

    Sponsored by
    Rocket Software

    Software built on TRUST. Delivered with LOVE.

    For over 35 years, Rocket Software’s solutions have empowered businesses to modernize their infrastructure, unlock data value, and drive transformation – all while ensuring modernization without disruption.

    Learn More

    Share this:

    • Reddit
    • Facebook
    • LinkedIn
    • Twitter
    • Email

    Sponsored Links

    nuBridges:  Leading provider of secure FTP on the iSeries
    New Generation Software:  Leading provider of iSeries BI and financial management software
    COMMON:  Join us at the Spring 2007 conference, April 29 – May 3, in Anaheim, California

    The Web, the Workplace, and IBM’s Updated Content Management Software Bang for the Buck: Big Iron Boxes, Even Bigger Bucks

    Leave a Reply Cancel reply

Volume 6, Number 35 -- September 27, 2006
THIS ISSUE SPONSORED BY:

T.L. Ashford
WorksRight Software
Asymex

Table of Contents

  • Copy a Subset of Records from One System to Another
  • Stuffing Five Digits Into Four
  • Admin Alert: Setting the Record Straight on iSeries Access and ODBC Freeware

Content archive

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

Recent Posts

  • The Power11 Transistor Count Discrepancies Explained – Sort Of
  • Is Your IBM i HA/DR Actually Tested – Or Just Installed?
  • Big Blue Delivers IBM i Customer Requests In ACS Update
  • New DbToo SDK Hooks RPG And Db2 For i To External Services
  • IBM i PTF Guide, Volume 27, Number 33
  • 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

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