VSAM KSDS using POINT with Partial key returning unexpected data

Document ID : KB000045800
Last Modified Date : 14/02/2018
Show Technical Document Details

 

Introduction:

Client has their own code to set up the reading of a VSAM partial key.

Question:

We upgraded Easytrieve to version 11.6. Now one of our users ran a program that uses a POINT instruction to position in to a VSAM KSDS dataset using a partial key, and is not getting the expected data returned.  This program ran fine before in Easytrieve compatibility mode, so we are assuming it has something to do with the migration upgrade. It appears that in Compatibility mode, the remaining values of the key were filled in with low-values and now they are being filled with spaces, causing unexpected data to be returned

Environment: 

Migrating from Easytrieve compatibility mode to Easytrieve R11.6 New Function=Y  

 

Answer: 

This is an upgrade difference, where Easytrieve 6.4(and 11.x compatibility mode) use GET LOCATE Mode, and have binary zeros in the buffer area to fill the key.
With Easytrieve R11.x, we use GET MOVE Mode, and have Spaces in the program working storage to fill the key. 

 

Additional Information:

Easytrieve does not support VSAM access by partial keys.                     
You will need to define a field with the same length as file key, initialize it to spaces or   
low values, set the partial key value in the first bytes as needed by definition,
refining redefined fields and use the whole key in the POINT statement.