fhg
Volume 9, Number 7 -- February 25, 2009

Easily Avoid a Common Data Structure Error

Published: February 25, 2009

by Ted Holt

A shop with which I'm acquainted had an undesirable experience recently. A program that, to my understanding, had been working properly, ended abnormally. The error could have easily been avoided, had the programmer followed one simple rule of thumb.

Take a look at the following program fragment.

D MyData          ds                 
D  OneField                      4a  
D  TwoField                      7p 0
D  RedField                      3s 0
D  BlueField                     5u 0
D                                    
D Number          s             15p 5
                                     
 /free                               
     Number = TwoField;              

If the calculation is the first executable statement in the program, what is the new value of Number? The answer is that Number never gets a new value. TwoField has an initial value of hexadecimal 40404040, which is not a valid packed decimal value. The program receives message MCH1202 and that's the end of that.

Suppose the first executable statement is this one:

     Number = BlueField;

What's the value of Number after this assignment? That's right! Sixteen thousand, four hundred forty-eight, the decimal equivalent of hex 4040. In this case, the program runs, but has a logic error.

Such errors won't occur if you habitually initialize data structures. That is, add the INZ keyword to the first line.

D MyData          ds                  inz

The best way to debug a program is not to put bugs into it in the first place. Little rules of thumb, like "always initialize data structures," move you toward that goal.




                     Post this story to del.icio.us
               Post this story to Digg
    Post this story to Slashdot


Sponsored By
WORKSRIGHT SOFTWARE

Do you need area code information?
Do you need ZIP Code information?
Do you need ZIP+4 information?
Do you need city name information?
Do you need county information?
Do you need a nearest dealer locator system?

We can HELP! We have affordable AS/400 software and data to do all of the above. Whether you need a simple city name retrieval system or a sophisticated CASS postal coding system, we have it for you!

The ZIP/CITY system is based on 5-digit ZIP Codes. You can retrieve city names, state names, county names, area codes, time zones, latitude, longitude, and more just by knowing the ZIP Code. We supply information on all the latest area code changes. A nearest dealer locator function is also included. ZIP/CITY includes software, data, monthly updates, and unlimited support. The cost is $495 per year.

PER/ZIP4 is a sophisticated CASS certified postal coding system for assigning ZIP Codes, ZIP+4, carrier route, and delivery point codes. PER/ZIP4 also provides county names and FIPS codes. PER/ZIP4 can be used interactively, in batch, and with callable programs. PER/ZIP4 includes software, data, monthly updates, and unlimited support. The cost is $3,900 for the first year, and $1,950 for renewal.

Just call us and we'll arrange for 30 days FREE use of either
ZIP/CITY or PER/ZIP4.

WorksRight Software, Inc.
Phone: 601-856-8337
Fax: 601-856-9432
E-mail: software@worksright.com
Web site: www.worksright.com


Senior Technical Editor: Ted Holt
Technical Editor: Joe Hertvik
Contributing Technical Editors: Edwin Earley, Brian Kelly, Michael Sansoterra
Publisher and Advertising Director: Jenny Thomas
Advertising Sales Representative: Kim Reed
Contact the Editors: To contact anyone on the IT Jungle Team
Go to our contacts page and send us a message.

Sponsored Links

WMCPA:  24rd Annual Spring Technical Conference, April 1 & 2, 2009, Delavan, WI
COMMON:  Join us at the 2009 annual meeting and expo, April 26-30, Reno, Nevada
Vision Solutions:  Learn About Data Integration for Business Intelligence


 

IT Jungle Store Top Book Picks

Easy Steps to Internet Programming for AS/400, iSeries, and System i: List Price, $49.95
Getting Started with PHP for i5/OS: List Price, $59.95
The System i RPG & RPG IV Tutorial and Lab Exercises: List Price, $59.95
The System i Pocket RPG & RPG IV Guide: List Price, $69.95
The iSeries Pocket Database Guide: List Price, $59.00
The iSeries Pocket Developers' Guide: List Price, $59.00
The iSeries Pocket SQL Guide: List Price, $59.00
The iSeries Pocket Query Guide: List Price, $49.00
The iSeries Pocket WebFacing Primer: List Price, $39.00
Migrating to WebSphere Express for iSeries: List Price, $49.00
iSeries Express Web Implementer's Guide: List Price, $59.00
Getting Started with WebSphere Development Studio for iSeries: List Price, $79.95
Getting Started With WebSphere Development Studio Client for iSeries: List Price, $89.00
Getting Started with WebSphere Express for iSeries: List Price, $49.00
WebFacing Application Design and Development Guide: List Price, $55.00
Can the AS/400 Survive IBM?: List Price, $49.00
The All-Everything Machine: List Price, $29.95
Chip Wars: List Price, $29.95


 
The Four Hundred
Colonizing Endicott

PHP Forges Ahead; Consultant Propels Multiple Projects

i Shops Get Some Power Rewards Action, Finally

As I See It: A Novel Idea

Virtualization Takes Off on Entry Power Systems

Four Hundred Stuff
Speedware Says RPG-to-.NET Code Converter Is the Real Deal

Tripwire Adds i OS Support to Configuration Control Software

Automated Routing Streamlines Deliveries, Lowers Distribution Costs

iEnterprises CRM Goes On-Demand with Help from IBM

iWay Debuts New Information Management Suite

Four Hundred Monitor
Four Hundred Monitor's
Full iSeries Events Calendar

System i PTF Guide
February 21, 2009: Volume 11, Number 8

February 14, 2009: Volume 11, Number 7

February 7, 2009: Volume 11, Number 6

January 31, 2009: Volume 11, Number 5

January 24, 2009: Volume 11, Number 4

January 17, 2009: Volume 11, Number 3

TPM at The Register
Red Hat cranks virtualization power play

Citrix undercuts VMware with XenServer giveaway

Shuttleworth gets cloudy with Ubuntu 9.10

IBM beefs System x with latest Intel, AMD chips

IBM, IBEC do rural Internet broadband

IBM lands 25 teraflop iDataplex cluster in Bluegrass State

HP printer, server, and PC sales in double digit dip

Dell punts green gear with 0% interest

DreamWorks to bake 3D flicks on desert cloud

Voltaire preps InfiniBand switch for IBM blades

Fake server beats real server on Web test

Appro calls Cray ante with super blade cluster

Red Hat and Microsoft ink virt interoperability deal

Intel's future Xeons to share sockets

THIS ISSUE SPONSORED BY:

Profound Logic Software
WorksRight Software
Northeast User Groups Conference


Printer Friendly Version


TABLE OF CONTENTS
A Bevy of BIFs: %SCAN and %CHECK

Easily Avoid a Common Data Structure Error

Admin Alert: Robot/SCHEDULE's DST Work-Around and More

Four Hundred Guru

BACK ISSUES

From the IT Jungle Forums
Insert via Java

iSeries Access for Web

Mimix installation and configuration docs

EDI Inovis Programmer - Heavy Duty Problem Solver - Anytime

Data Queues vs. MQ Series: Performance

Removing blanks from a CL Variable

XML




 
Subscription Information:
You can unsubscribe, change your email address, or sign up for any of IT Jungle's free e-newsletters through our Web site at http://www.itjungle.com/sub/subscribe.html.

Copyright © 1996-2009 Guild Companies, Inc. All Rights Reserved.
Guild Companies, Inc., 50 Park Terrace East, Suite 8F, New York, NY 10034

Privacy Statement