FILE directive

The FILE directive supplies a starting name from which the XFD file name is formed. This directive is required only when the file name in the COBOL code is nonspecific. For example, you would use this directive when the SELECT for the file has a variable ASSIGN name (ASSIGN TO variable_name). In this situation, the interface cannot form a file name automatically, and you must provide a name.

You can encounter this situation when you are using AcuXDBC's file alias feature. For example, the description section of your COBOL file may reference multiple data files with the same format. Each of these data files represents a distinct table in the database, but one XFD file describes them all.

A starting name is a short file name that serves as the basis for the XFD name.


$XFD FILE=name


*(( XFD FILE=name ))

This directive must appear on the line immediately preceding the file's FD.


The sample file file_dir.cbl contains code that demonstrates the FILE directive. Suppose your SELECT statement has a variable ASSIGN name such as the one shown here:

SELECT work-file
     ASSIGN to pet-file.

You must add the FILE directive as shown here:

           SELECT work-file
              ASSIGN TO pet-file
              ACCESS IS DYNAMIC
              RECORD KEY IS type-id
              FILE STATUS IS qa-file-status.
      $XFD FILE=patients
       FD  work-file.
       01  pet-record.
           05  type-id.
               10  atype            pic x.
               10  ano              pic 99.
           05  owner                pic x(30).
           05  breed                pic x(25).
           05  gender               pic x.
       01  pet-file                 pic x(8). 
       01  qa-file-status           pic xx.

Note that after compilation, the data directory now contains the files file_dir.acu and patients.xfd. Because the FILE directive assigns the name of the XFD file, this is different from previous examples in which both the .scu file and the .xfd file took the same base name as the .cbl file.

See Setting Up File Aliases for information on file alias and how to load XFDs to different tables and databases using the system catalog utility program (xdbcutil).