• 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
    Manta Technologies

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

    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

    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

    Copy a Subset of Records from One System to Another Admin Alert: Setting the Record Straight on iSeries Access and ODBC Freeware

    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

  • Bob 1.0 Users Bugged By Lack Of One Feature
  • Here Come The AI-Based Code Modernization Offerings
  • Guru: Cohesion First – What A Procedure Should Be Responsible For
  • IBM Offers Trade-Ins On Storage To Grease The Upgrade Skids
  • IBM i PTF Guide, Volume 28, Number 14
  • What IBM i Ideas Are Cooking In IBM’s Ideas Portal?
  • Early Bob Excels In Medhost IBM i Tryout
  • Counting The Cost Of AI Inference – And Projecting It Far Out
  • IBM i PTF Guide, Volume 28, Number 13
  • The Next Generation Of IBM i Talent in GenAI Action

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