• 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
    New Generation Software

    On Demand Video

    Data Visualization and Analytics
    with NGS-IQ and Microsoft Power BI

    Power BI is a popular visualization and analytics solution, but it’s only as good as the data your analysts can draw from your IBM i database.

    NGS-IQ simplifies and automates the cleansing, transformation, and delivery of IBM i data to Power BI reports and insights. Watch our new video to learn and see how NGS-IQ supports Power BI users while enabling you to maintain control and security.

    www.ngsi.com – 800-824-1220

    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

  • Power10 Boosts NVM-Express Flash Performance
  • Fortra Completes Postmortem Of GoAnywhere Vulnerability
  • Guru: Binding Directory Entries
  • How Does Your Infrastructure Spending Stack Up To The World?
  • IBM i PTF Guide, Volume 25, Number 22
  • Fortra Issues 20th State of IBM i Security Report
  • FNTS Launches Managed Services for Power Servers in IBM Cloud
  • Total LTO Shipped Capacity Up Slightly in 2022
  • Four Hundred Monitor, May 24
  • Update On Critical Security Vulnerability In PowerVM

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 © 2023 IT Jungle