For details on what target systems support what record types, see Record and file-type cross-reference. For details on how record parts are initialized, see Data initialization.
Record ALT_PCBRecord 10 terminalName char(8); 10 * char(2); 10 statusCode char(2); end
The ALT_PCBRecord type features a number of properties and property fields, described in PCB record part properties.
A basic record or fixed basic record is used for internal processing and cannot access data storage.
The part is a non-fixed record part by default; but is a fixed record part if the field definitions are preceded by level numbers.
In a fixed record part of type basicRecord, the following properties are available:
Record DB_PCBRecord 10 dbName char(8); 10 segmentLevel num(2); 10 statusCode char(2); 10 procOptions char(4) 10 * char(4); 10 segmentName char(8); 10 keyAreaLen int; 10 numSensitiveSegs int; 10 keyArea char(32767); endThe DB_PCBRecord type features a number of properties and property fields, described in PCB record part properties.
This record type may be either fixed length or non-fixed length. If it is non-fixed length, you must specify the lengthItem property (explained later in this section) in a set-value block.
The DLISegment record type holds the data you will read or write from a DL/I database segment. You can read a segment by invoking one of several possible get statements; you can write a segment by invoking an add or replace statement; and you can remove a segment from the file by invoking a delete statement.
Fields within the record must exactly match the fields in the database segment in length and type. For purposes of clarity or to aid migration, the names of the fields in the record definition do not need to match the field names in the DL/I segment. If any field name in the record does not match, however, you must use a set-value block to specify the eight-character dliFieldName property for that field. All names will be folded (converted to upper case) at generation time.
Record CustomerRecord type DLISegment { segmentName = "STSCCST", hostVarQualifier = "STSCCST", lengthItem = "mySegementLength", keyItem = "customerNo" } 10 customerNo char(6) { dliFieldName = "STQCCNO" }; 10 mySegementLength int; ... end
Record GSAM_PCBRecord 10 dbName char(8); 10 * num(2); 10 statusCode char(2); 10 procOptions char(4) 10 * char(20); 10 recordSearchArg bigint; 10 undefinedRecordLen int; endThe GSAM_PCBRecord type features a number of properties and property fields, described in PCB record part properties.
An indexed record is a fixed record that lets you to work with a file that is accessed by a key value, which identifies the logical position of a record in the file. You can read the file by invoking a get, get next, or get previous statement. Also, you can write to the file by invoking an add or replace statement; and you can remove a record from the file by invoking a delete statement.
See also Properties that support variable-length records.
Record IO_PCBRecord 10 terminalName char(8); 10 * char(2); 10 statusCode char(2); 10 * char(8); 12 localDate decimal(7); 12 localTime decimal(7); 10 inputMsgSegNum int; 10 userid char(8); 10 groupName char(8); 10 * char(12); 12 currentDate decimal(7); 12 currentTime decimal(11); 12 utcOffset hex(4); 10 userIdIndicator char(1); endThe IO_PCBRecord type features a number of properties and property fields, described in PCB record part properties.
An MQ record is a fixed record that lets you access an MQSeries® message queue. For details, see MQSeries support.
Record PSBDataRecord psbName char(8); psbRef int; end
You can use the record to interact with the system variable DLILib.psbData, which contains both the name of the runtime PSB and an address with which that PSB is accessed. The record is also useful if you need to pass the PSB (really, a name and address) to another program or to receive the PSB from another program.
This record part defines the structure of the runtime program specification block (PSB) and includes a series of PCB records. When you develop a PCB record for a database, for example (record type DB_PCBRecord), you represent a segment hierarchy by assigning values to the complex property@PCB. As shown in a later example, that property identifies the PCB name and type and includes a hierarchy field, which in turn contains a sequence of @Relationship properties.
Record CustomerPSB type PSBRecord { defaultPSBName="STBICLG" } // three PCBs required for call interface CBLTDLI iopcb IO_PCBRecord { @PCB { pcbType = TP } }; ELAALT ALT_PCBRecord { @PCB { pcbType = TP } }; ELAEXP ALT_PCBRecord { @PCB { pcbType = TP } }; // database PCB customerPCB DB_PCBRecord { @PCB { pcbType = DB, pcbName = "STDCDBL", hierarchy = [ @Relationship { segmentRecord = "CustomerRecord" }, @Relationship { segmentRecord = "LocationRecord", parentRecord = "CustomerRecord" }, @Relationship { segmentRecord = "CreditRecord", parentRecord = "CustomerRecord" }, @Relationship { segmentRecord = "HistoryRecord", parentRecord = "CustomerRecord" }, @Relationship { segmentRecord = "OrderRecord", parentRecord = "LocationRecord" }, @Relationship { segmentRecord = "ItemRecord", parentRecord = "OrderRecord" }]}}; endFor more information on the properties of a PCB record, see PCB record type properties.
Only the get and add statements use the key field, but the key field must be available to any function that uses the record for file access.
A serial record is a fixed record that lets you access a sequentially accessed file or data set. You can read from the file by invoking a get statement, and a series of get next statements reads the file records sequentially, from the first to the last. You can write to the file by invoking an add statement, which places a new record at the end of the file.
See also Properties that support variable-length records.
An SQL record is a record that provides special services when you access a relational database.
The part is a non-fixed record part by default; but is a fixed record part if the field definitions are preceded with level numbers.
In most cases, the SQL default select condition supplements a second condition, which is based on an association between the key-field values in the SQL record and the key columns of the SQL table.
For details, see SQL support.
A VGUIRecord part is a generatable part and is the basis of a VGUI record, which is a VGWebTransaction program or function variable that makes communication possible between the program and a specific Web page.