VMS Help  —  RDML72  Statements  STORE Seg Strings, Examples
    The following programs demonstrate the use of the STORE statement
    to store segmented strings in a record. These programs:

    o  Declare an array to hold the segmented strings to be stored.

    o  Assign values to the array.

    o  Use a STORE operation to store the employee ID in the RESUMES
       record.

    o  Use an inner STORE operation to store the segmented strings.
       This ensures that the employee ID and the segmented strings
       are stored in the same record.

    o  Store the values from the array into the RESUME field of
       RESUMES.

    o  Complete the STORE operation.

    o  Retrieve the segmented strings (just stored) using a nested
       FOR statement.

    For more information on retrieving segmented strings, see the
    entry on FOR Seg_String.

1  –  C Example

    #include <stdio.h>
    DATABASE PERS = FILENAME "PERSONNEL";

    main()
    {
    int line;
    char *document[3];

    document[0] = "first line of resume  ";
    document[1] = "second line of resume ";
    document[2] = "last line of resume   ";

    READY PERS;
    START_TRANSACTION READ_WRITE;

        STORE R IN RESUMES USING
            strcpy (R.EMPLOYEE_ID,"12345");
                             for (line = 0; line <= 2; line++)
                STORE LINE IN R.RESUME
                                     strcpy(LINE.VALUE,document[line]);
                    LINE.LENGTH = strlen(LINE.VALUE);
                END_STORE;
        END_STORE;

    FOR R IN RESUMES WITH R.EMPLOYEE_ID = "12345"
        FOR LINE IN R.RESUME
          printf("%s\n",LINE.VALUE);
        END_FOR;
    END_FOR;

    COMMIT;
    FINISH;
    }

2  –  Pascal Example

    program segstr (input,output);
    DATABASE PERS = FILENAME 'PERSONNEL';

    type                     lines = varying [80] of char;
    var                      linecnt  : integer;
                             document : array [0..2] of lines;

    begin

    document[0] := 'first line of resume  ';
    document[1] := 'second line of resume ';
    document[2] := 'last line of resume   ';

    READY PERS;
    START_TRANSACTION READ_WRITE;

    STORE R IN RESUMES USING
       R.EMPLOYEE_ID:= '12345';
       for linecnt := 0 to 2 do
           STORE SEG IN R.RESUME
                               SEG  := document[linecnt];
                               SEG.LENGTH := length(document[linecnt]);
            END_STORE;
    END_STORE;

    COMMIT;

    START_TRANSACTION READ_WRITE;

    FOR R IN RESUMES WITH R.EMPLOYEE_ID = '12345'
        FOR SEG IN R.RESUME
          writeln(SEG);
        END_FOR;
    END_FOR;

    COMMIT;
    FINISH;
    end.
Close Help