The Retrieve Field Attributes command retrieves the field attributes
of a field in a physical file or a single format logical file.
A typical command would be:
DCL &TYPE *CHAR LEN(1)
DCL &BYTLEN *DEC LEN(5 0)
DCL &TEXT *CHAR LEN(50)
.
.
RTVFLDA FILE(FILEA) FIELD(FIELD1) TYPE(&TYPE)
BYTLEN(&BYTLEN) TEXT(&TEXT)
If you use the command to retrieve the attributes for multiple
fields, you should use the SETLR parameter to minimize the overhead
of accessing the field information.
If the field does not exist in the file, TAA9897 is sent as an escape
message.
Command parameters *CMD
------------------
FILE The qualified file name of the data base file. The
library value defaults to *LIBL. *CURLIB may be
specified. A physical file or a logical file with a
single format may be named.
FIELD The field name to access the attributes of.
SETLR How to set LR for the RPG program doing the work.
The default is *YES, meaning that each time RTVFLDA
is used, the list of fields will be accessed from
the file. There is overhead to create the list of
fields.
*NO means the the RPG program returns, but is still
active and still retains the list of fields inside
the program. *NO should be used when you are going
to use RTVFLDA again to access data from the same
file.
*IMMED means to end the RPG program without
returning any field attributes. A field must be
specified, but no attributes will be returned.
TYPE An optional return variable that will contain the
type of field. The values returned correspond to
the entries made in DDS. If specified, the variable
must be declared as *CHAR LEN(1). The values will
be:
P = Packed decimal
S = Zoned decimal
B = Binary
F = Floating point
A = Character
L = Date type
T = Time type
Z = Timestamp
H = Hexadecimal
J = DBCS-only
E = DBCS-either
O = DBCS-open
G = DBCS-graphics
BYTLEN An optional return variable that will contain the
number of bytes the field takes in the buffer. For
character fields, this is the field length. For
packed fields this is the length in the buffer and
not the number of digits. See the DIGITS field. If
specified, the variable must be declared as *DEC
LEN(5 0).
DIGITS An optional return variable that will contain the
number of digits if the field is some form of
numeric value. If specified, the variable must be
declared as *DEC LEN(2 0).
DECIMALS An optional return variable that will contain the
number of decimal positions for a numeric value. If
specified, the variable must be declared as *DEC
LEN(2 0).
TEXT An optional return variable that will contain the
text description of the field. If specified, the
variable must be declared as *CHAR LEN(50).
BUFLOC An optional return variable that will contain the
starting location of the field in the buffer. If
specified, the variable must be declared as *DEC
LEN(5 0).
COLHD1 An optional return variable that will contain the
first column heading of the field. If specified,
the variable must be declared as *CHAR LEN(20).
COLHD2 An optional return variable that will contain the
second column heading of the field. If specified,
the variable must be declared as *CHAR LEN(20).
COLHD3 An optional return variable that will contain the
third column heading of the field. If specified,
the variable must be declared as *CHAR LEN(20).
INTNAME An optional return variable that will contain the
internal name of the field. If specified, the
variable must be declared as *CHAR LEN(10).
ALTNAME An optional return variable that will contain the
alternative name of the field. If specified, the
variable must be declared as *CHAR LEN(30).
REFFILE An optional return variable that will contain the
file used if the field was defined by reference. If
specified, the variable must be declared as *CHAR
LEN(10).
REFLIB An optional return variable that will contain the
library used if the field was defined by reference.
If specified, the variable must be declared as *CHAR
LEN(10).
REFFMT An optional return variable that will contain the
format used if the field was defined by reference.
If specified, the variable must be declared as *CHAR
LEN(10).
REFFLD An optional return variable that will contain the
field used if the field was defined by reference.
If specified, the variable must be declared as *CHAR
LEN(10).
DATTIMFMT An optional return variable that will contain the
value used to define the format of the field if it
is a date/time field. The value will be blank or
*MDY, *DMY, *YMD, *JUL *ISO, *USA, *EUR, *JIS *HM.
If specified, the variable must be declared as *CHAR
LEN(4).
DATTIMSEP An optional return variable that will contain the
value used to define the separator used if the field
is a date/time field. If specified, the variable
must be declared as *CHAR LEN(1).
ALLOWNULL An optional return variable that will contain a Y or
N to designate if the field allows a null value. If
specified, the variable must be declared as *CHAR
LEN(1).
VARLENFLD An optional return variable that will contain a Y or
N to designate if the field is variable length. If
specified, the variable must be declared as *CHAR
LEN(1).
ALLOCLEN An optional return variable that will contain the
allocated length for variable length fields. If
specified, the variable must be declared as *DEC
LEN(5 0).
EDTCDE An optional return variable that will contain the
edit code assigned to the field. If specified, the
variable must be declared as *CHAR LEN(1).
NBRVLDCHK An optional return variable that will contain the
number of validity checks specified for the field.
If specified, the variable must be declared as *DEC
LEN(4 0).
KBDSHIFT An optional return variable that will contain the
keyboard shift assigned to the field. If specified,
the variable must be declared as *CHAR LEN(1).
CCSID An optional return variable that will contain the
Code Character Set ID specified for the field. If
specified, the variable must be declared as *DEC
LEN(5 0).
ORDNBR An optional return variable that will contain the
Ordinal Number of the field in the format. For
example, the 9th field in the format is Ordinal
Number 9. If specified, the variable must be
declared as *DEC LEN(5 0).
Restrictions
------------
The RTVFLDARR tool used to access the information has a restriction
of operating on physical files or single format logical files that
have 998 or less field names.
Prerequisites
-------------
The following TAA Tools must be on your system:
RTVFLDARR Retrieve field array
SNDESCMSG Send escape message
Implementation
--------------
None, the tool is ready to use.
Objects used by the tool
------------------------
Object Type Attribute Src member Src file
------ ---- --------- ---------- ----------
RTVFLDA *CMD TAADBHI QATTCMD
TAADBHIC *PGM CLP TAADBHIC QATTCL
TAADBHIR *PGM RPG TAADBHIR QATTRPG
|