[an error occurred while processing this directive]
HP OpenVMS Systems Documentation |
HP COBOL
|
Previous | Contents | Index |
$ SCA LOAD PG1,PG2,PG3 |
To invoke LSE, issue the following command at the DCL prompt:
$ LSEDIT USER.COB |
To end an LSE session, press CTRL/Z to get the LSE> prompt. If you wish to save modifications to your file, issue the EXIT command. If you do not wish to save the file or any modification to the file, issue the QUIT command.
To invoke SCA from LSE, type the SCA command that you wish to execute at the LSE> prompt, as in the following syntax:
LSE> command [parameter] [/qualifier...] |
To invoke SCA from the DCL command line for the execution of a single command, you can use the following syntax:
$ SCA command [parameter] [/qualifier...] |
If you have several SCA commands to invoke, you might wish to use the SCA subsystem to enter commands, as in the following syntax:
$ SCA SCA> command [parameter] [/qualifier...] |
Typing EXIT (or pressing CTRL/Z) ends an SCA subsystem session and
returns you to the DCL level.
C.4.4 Compiling from Within LSE
To compile a completed COBOL program, issue the following command at the LSE prompt:
LSE> COMPILE |
To compile a COBOL program that contains placeholders and design comments, include the following qualifiers with the previous command:
LSE> COMPILE $/ANALYSIS_DATA |
The /ANALYSIS_DATA qualifier causes the compiler to generate a data analysis file containing source code analysis information and to provide this information to the SCA library.
LSE provides several commands to help you review errors and examine your source code:
Command | Key Binding | Function |
---|---|---|
Oracle CDD/Repository is an optional software product available under a separate license. The Oracle CDD/Repository product lets you maintain shareable data definitions, such as record and field definitions. Oracle CDD/Repository data definitions are organized hierarchically in much the same way that files are organized in directories and subdirectories. For example, a repository for defining personnel data might have separate directories for each employee type.
Often, it is the job of a repository or data administrator to create repositories, define directory structures, and insert record and field definitions into the repository. In large organizations, many repositories can be linked together to form one logical repository. Once the repositories are established, the data definitions can be used throughout the organization by database administrators and application developers. If the paths are set up correctly, users can access definitions as if they were in a single repository.
Descriptions of data definitions are entered into the repository in a special-purpose language called Common Dictionary Operator (CDO). (Oracle CDD/Repository also supports both the Common Data Dictionary (Version 3) and CDD/Plus (Version 4) interfaces for use by existing databases and applications.) Oracle CDD/Repository converts the data descriptions to an internal form---making them independent of the language used to access them---and inserts them into the repository.
When you compile a COBOL program, Oracle CDD/Repository data definitions can be accessed by means of the COPY FROM DICTIONARY statement. If the attributes of the data definitions are consistent with HP COBOL requirements, the data definitions are included in the COBOL program. Oracle CDD/Repository data definitions, in the form of COBOL source code, can appear in source program listings if you specify the /LIST and /COPY_LIST qualifiers on the COBOL command line.
Oracle CDD/Repository can also store information about the structure of a program, such as the compiled modules that go into making an object module, or the record and field definitions that are used by COBOL programs. If, for example, a record definition needs to change, you can analyze the impact that change will have on the various programs that use it. When the definition is changed, Oracle CDD/Repository notifies the modules that the record definition is out of date, and the program can be recompiled.
To take advantage of dependency recording, you must:
The following example shows how you can use CDO to create a number of fields representing name and address information:
DEFINE FIELD NAME DATATYPE IS TEXT SIZE IS 25 CHARACTERS. DEFINE FIELD COMPANY_NAME DATATYPE IS TEXT SIZE IS 25 CHARACTERS. DEFINE FIELD STREET DATATYPE IS TEXT SIZE IS 20 CHARACTERS. DEFINE FIELD CITY DATATYPE IS TEXT SIZE IS 20 CHARACTERS. DEFINE FIELD STATE DATATYPE IS TEXT SIZE IS 2 CHARACTERS. DEFINE FIELD ZIP DATATYPE IS TEXT SIZE IS 5 CHARACTERS. |
The fields can then be used to create records. The following example creates two records --- one for customer address information and one for employee address information:
DEFINE RECORD CUSTOMER_ADDRESS_RECORD. NAME. COMPANY_NAME. STREET. STATE. ZIP. END RECORD. DEFINE RECORD EMPLOYEE_ADDRESS_RECORD. NAME. STREET. STATE. ZIP. END RECORD. |
You access repository data definitions from a COBOL program using the COPY FROM DICTIONARY statement. At compile time, the record definition and its attributes are extracted from the designated repository. Then the compiler converts the extracted definition into a COBOL declaration. For example, the following COBOL statements access the customer and employee address records defined earlier. These definitions have been placed in the repository directory DEVICE:[VMS_DIRECTORY]SALES.
IDENTIFICATION DIVISION. PROGRAM-ID. MASTER-FILE. DATA DIVISION. WORKING-STORAGE SECTION. COPY "DEVICE:[VMS_DIRECTORY]SALES.CUSTOMER_ADDRESS_RECORD" FROM DICTIONARY. COPY "DEVICE:[VMS_DIRECTORY]SALES.EMPLOYEE_ADDRESS_RECORD" FROM DICTIONARY. . . . |
If you compile this program with the /LIST and /COPY_LIST qualifiers, the source listing includes the data definition translated into a COBOL declaration, as shown in the following example:
1 IDENTIFICATION DIVISION. 2 PROGRAM-ID. MASTER-FILE. 3 DATA DIVISION. 4 WORKING-STORAGE SECTION. 5 COPY "DEVICE:[VMS_DIRECTORY]SALES.CUSTOMER_ADDRESS_RECORD" FROM DICTIONARY. L 6 * L 7 *DEVICE:[VMS_DIRECTORY].SALES.CUSTOMER_ADDRESS_RECORD L 8 * L 9 01 CUSTOMER_ADDRESS_RECORD. L 10 02 NAME PIC X(25). L 11 02 COMPANY_NAME PIC X(25). L 12 02 STREET PIC X(20). L 13 02 CITY PIC X(20). L 14 02 STATE PIC X(2). L 15 02 ZIP PIC X(5). 16 COPY "NODE::DEVICE:[VMS_DIRECTORY]SALES.EMPLOYEE_ADDRESS_RECORD" FROM DICTIONARY. L 17 * L 18 *DEVICE:[VMS_DIRECTORY].SALES.EMPLOYEE_ADDRESS_RECORD L 19 * L 20 01 EMPLOYEE_ADDRESS_RECORD. L 21 02 NAME PIC X(25). L 22 02 STREET PIC X(20). L 23 02 CITY PIC X(20). L 24 02 STATE PIC X(2). L 25 02 ZIP PIC X(5). . . . |
For more information on the COPY FROM DICTIONARY statement, refer to the HP COBOL Reference Manual. For more information on the /LIST and /COPY_LIST command qualifiers, invoke the online help facility for COBOL at the operating system prompt.
Previous | Next | Contents | Index |