TechTalk: QRYSLT with Binary Fields

General
Typography
  • Smaller Small Medium Big Bigger
  • Default Helvetica Segoe Georgia Times

QRYSLT with Binary Fields

From: Debbie Abbott To: All

I need to pre-select records out of a physical file via either a logical or OPNQRYF file. My problem is the field I need to select on is a character field with one position that contains a binary switch. I need only records with certain bits 'on'. I have created a logical file and attempted to convert the field into a hexadecimal field by using the data type. Yet, when I use DFU to view the data via the logical, the data looks binary to me.

Has anyone done anything similar? Can anyone help? The program is currently reading 1.2 million records each night but only needs to process a handful of those. If I could get the select to work in some way, it would greatly improve our nightly processing. I have looked through both the CL Programmer's Guide manual and Open Query File Magic! from Midrange Computing to no avail.

From: Ted Holt To: Debbie Abbott

What you want to do is not impossible, just a little unusual.

File BINDATA contains a field FLAGS which is character, 10 bytes long. We wish to select records where the fifth byte of FLAGS is as follows: (1) The first bit (bit 0) is on and (2) either the fourth or fifth bit (bits 3 and 4) is on. See 3.

File BINDATA contains a field FLAGS which is character, 10 bytes long. We wish to select records where the fifth byte of FLAGS is as follows: (1) The first bit (bit 0) is on and (2) either the fourth or fifth bit (bits 3 and 4) is on. See Figure 3.

The three %AND functions isolate the three different bits we're testing. The %AND function does a logical AND operation. It compares two strings, bit by bit. If the same bit is on in both strings, it turns on the corresponding bit in the result string. 4 shows a couple of examples of how the first %AND would work with different values of TESTBYTE.

The three %AND functions isolate the three different bits we're testing. The %AND function does a logical AND operation. It compares two strings, bit by bit. If the same bit is on in both strings, it turns on the corresponding bit in the result string. Figure 4 shows a couple of examples of how the first %AND would work with different values of TESTBYTE.

TEST0 will come back as all zeros if bit 0 is not on. The same is true for the other two TESTx fields. You can use these fields to see if they are equal to hex 00 or not. If they are not equal, the bit is on.

By the way, if the flag field is only 1 byte long, you don't have to use the first mapped field; you can just use the flag field in the other three mapped fields instead of TESTBYTE. The QRYSLT doesn't change.

When I was writing Open Query File Magic!, I spent a good bit of time trying to come up with an example using a logical function, but everything I came up with seemed contrived, or there was an easier way to do it. I'll see about adding this to a future edition.


TechTalk: QRYSLT with Binary Fields

Figure 3 QRYSLT With Binary Fields

 PGM DCL VAR(&QRYSLT) TYPE(*CHAR) LEN(256) CHGVAR VAR(&QRYSLT) VALUE('TEST0 *NE X''00'' *AND + TEST3 *NE X''00'' *OR TEST4 *NE X''00''') OVRDBF FILE(BINDATA) SHARE(*YES) OPNQRYF FILE((BINDATA)) QRYSLT(&QRYSLT) + MAPFLD((TESTBYTE '%SST(FLAGS 5 1)') + (TEST0 '%AND(TESTBYTE X''80'')') + (TEST3 '%AND(TESTBYTE X''10'')') + (TEST4 '%AND(TESTBYTE X''08'')')) CALL PGM(BINRPG) CLOF OPNID(BINDATA) DLTOVR FILE(BINDATA) ENDPGM 
TechTalk: QRYSLT with Binary Fields

Figure 4 Using %AND in QRYSLT

 TESTBYTE 10100010 00001111 X'80' 10000000 10000000 -------- -------- TEST0 10000000 00000000 
BLOG COMMENTS POWERED BY DISQUS

LATEST COMMENTS

Support MC Press Online

$

Book Reviews

Resource Center

  •  

  • LANSA Business users want new applications now. Market and regulatory pressures require faster application updates and delivery into production. Your IBM i developers may be approaching retirement, and you see no sure way to fill their positions with experienced developers. In addition, you may be caught between maintaining your existing applications and the uncertainty of moving to something new.

  • The MC Resource Centers bring you the widest selection of white papers, trial software, and on-demand webcasts for you to choose from. >> Review the list of White Papers, Trial Software or On-Demand Webcast at the MC Press Resource Center. >> Add the items to yru Cart and complet he checkout process and submit

  • SB Profound WC 5536Join us for this hour-long webcast that will explore:

  • Fortra IT managers hoping to find new IBM i talent are discovering that the pool of experienced RPG programmers and operators or administrators with intimate knowledge of the operating system and the applications that run on it is small. This begs the question: How will you manage the platform that supports such a big part of your business? This guide offers strategies and software suggestions to help you plan IT staffing and resources and smooth the transition after your AS/400 talent retires. Read on to learn: