Adding records (File architecture): Difference between revisions

From m204wiki
Jump to navigation Jump to search
mNo edit summary
No edit summary
Line 1: Line 1:
This page needs extensive work
==Adding a record to a file==
 
<p>This section describes the process to add a record to a Model 204 file. It presumes that the fikle has already been [[CREATE command|CREATE]]d and [[INITIALIZE command|INITIALIZE]]d, and that all fields and Repeating Field Groups (RFGs) needed in this action are defined to the file. </p>
<p>And a reminder: while fields and RFGs may, generally, be added to the file at any time, some field attributes (for example, the pre-allocation of fields with the OCCURS attribute), may only be created in a file to which no data has yet been added.</p>


==Adding a record to a file==
<p>The addition of the record is driven by the store record statement:</p>
<p>To add a record to a file: </p>
<p>Prerequisite:</p>
<p>All preallocated fields (fields that have an OCCURS clause) must be defined before any records are added to the file. </p>
<ol>
<ol>
<li>Enter a User Language STORE RECORD statement with a list of name = value pairs, as in the following example. </li>
<li>Enter a User Language [[STORE RECORD statement]] with a list of ''fieldname'' value pairs, as in the following example. </li>
</ol>
</ol>
<p class="code">STREC: STORE RECORD
<p class="code">STREC: STORE RECORD
Line 16: Line 14:
</p>
</p>
<p>Alternatively, you can use the Host Language Interface IFBREC, IFPUT, and IFSTORE functions, which also require a list of name = value pairs.</p>
<p>Alternatively, you can use the Host Language Interface IFBREC, IFPUT, and IFSTORE functions, which also require a list of name = value pairs.</p>
<p>All field names must previously have been defined, but not all field names need to have assigned values in every record. In fact, if you omit a field, the field is not stored in the record at all, thus saving space in the file.</p>
<p>All referenced field names must previously have been defined, but not all field names need to have assigned values in every record. In fact, if you omit a field, the field is not stored in the record at all, thus saving space in the file.</p>
<p>For more information see the Rocket <var class="product">Model&nbsp;204</var> User Language Manual or the Rocket <var class="product">Model&nbsp;204</var> Host Language Interface Reference Manual.</p>
<p>For more information see the Rocket <var class="product">Model&nbsp;204</var> User Language Manual or the Rocket <var class="product">Model&nbsp;204</var> Host Language Interface Reference Manual.</p>
<p>After records are loaded, you can add a preallocated field definition only by reinitializing the file, defining all the fields-including the new preallocated field-and reloading the records. Non-preallocated field definitions can be added at any time. </p>
 
==How Model 204 adds records to a file==
==How Model 204 adds records to a file==
<p>In the process of adding a new record to a file, <var class="product">Model&nbsp;204</var>:</p>
<p>In the process of adding a new record to a file, <var class="product">Model&nbsp;204</var>:</p>
<ol>
#Like all User Language code, the process consists of two parts; first the code is compiled:
<li>Converts all field names and the values of coded fields and some FRV fields into fixed-length codes from Table A.</li>
##all field names, the values of coded fields and some FRV fields are converted into fixed-length codes from Table A
<li>Creates a logical <var class="product">Model&nbsp;204</var> record that contains field name = value pairs in Table B.</li>
##all other attributes of the referenced fields are noted for use during the execution
<li>Adds indexing information to Tables C and D for fields that have the KEY, NUMERIC RANGE, ORDERED, or FRV field description attributes. </li>
#Presuming the code compiles, in the evaluation process, when the STORE RECORD statement is executed:
</ol>
##a physical internal record number (IRN) is assigned in Table B taking the [[BRESERVE parameter]] into account
##if there are any preallocated fields, the fields in the [[Table D record map]] are added to the record
##then, for each field value pair in the STORE RECORD statement (none are required, an 'empty' record can be created if no fields are referenced):
###the field value pair is added to the record (or preallocated field updated)
###if the field is indexed, the necessary updates occur to Tables C and D.
 
==Considerations when adding many records to a file==
==Considerations when adding many records to a file==
<p>If you are adding a large number of records to a file, consider these alternatives for increased efficiency: </p>
<p>If you are adding a large number of records to a file, consider these alternatives for increased efficiency: </p>

Revision as of 20:56, 3 April 2013

Adding a record to a file

This section describes the process to add a record to a Model 204 file. It presumes that the fikle has already been CREATEd and INITIALIZEd, and that all fields and Repeating Field Groups (RFGs) needed in this action are defined to the file.

And a reminder: while fields and RFGs may, generally, be added to the file at any time, some field attributes (for example, the pre-allocation of fields with the OCCURS attribute), may only be created in a file to which no data has yet been added.

The addition of the record is driven by the store record statement:

  1. Enter a User Language STORE RECORD statement with a list of fieldname value pairs, as in the following example.

STREC: STORE RECORD NAME=RASPUTIN SEX=MALE OCCUPATION=MONK END STORE

Alternatively, you can use the Host Language Interface IFBREC, IFPUT, and IFSTORE functions, which also require a list of name = value pairs.

All referenced field names must previously have been defined, but not all field names need to have assigned values in every record. In fact, if you omit a field, the field is not stored in the record at all, thus saving space in the file.

For more information see the Rocket Model 204 User Language Manual or the Rocket Model 204 Host Language Interface Reference Manual.

How Model 204 adds records to a file

In the process of adding a new record to a file, Model 204:

  1. Like all User Language code, the process consists of two parts; first the code is compiled:
    1. all field names, the values of coded fields and some FRV fields are converted into fixed-length codes from Table A
    2. all other attributes of the referenced fields are noted for use during the execution
  2. Presuming the code compiles, in the evaluation process, when the STORE RECORD statement is executed:
    1. a physical internal record number (IRN) is assigned in Table B taking the BRESERVE parameter into account
    2. if there are any preallocated fields, the fields in the Table D record map are added to the record
    3. then, for each field value pair in the STORE RECORD statement (none are required, an 'empty' record can be created if no fields are referenced):
      1. the field value pair is added to the record (or preallocated field updated)
      2. if the field is indexed, the necessary updates occur to Tables C and D.

Considerations when adding many records to a file

If you are adding a large number of records to a file, consider these alternatives for increased efficiency:

  • Deferred updates. Defer changes or additions that update Tables C and D, instead specifying that step 3 above be performed in separate phases. Deferred Update Feature describes how to use deferred updates.
  • File Load utility. If the raw data for the records to be stored in the Model 204 file already exists in a machine-readable format (magnetic tape, direct-access storage, cards), use the File Load utility to load that data directly into the Model 204 file quickly and economically. File Load Utility describes the File Load utility.