| 
|  | » |  | 
 |  | You use the following command to both check SQL syntax and
create output files that can be processed by the Pascal
compiler.  This command also stores a module in the
DBEnvironment named and creates a file containing an installable
version of the module. | Syntax |  |  | 
psqlpas DBEnvironmentName    -i SourceFileName   -p ModifiedSourceFileName   -o OwnerName   -m ModuleName   -d   [-r]   |...| | Parameters |  |  | 
DBEnvironmentName
identifies the DBEnvironment in which a module is to be stored.
-i SourceFileName
identifies the name of the input file containing the source code
to be preprocessed.  
-p ModifiedSourceFile Name
identifies the name of the modified source code file.  If a name
is not specified, the preprocessor generated code is written to
a file with the same name as SourceFileName but with the file
extension .p.
-o OwnerName
associates the stored module with a user's userid, a ClassName,
or a GroupName.  You can specify an owner name for the module if
you have DBA authority in the DBEnvironment where the module is
to be stored.  You can also specify a group as owner if you are
a member of the group.  If not specified, the owner name is your
userid.  Any object names in the SourceFileName not qualified
with an owner name are qualified with this OwnerName.
-m ModuleName
assigns a name to the stored module.  Module names must follow
the rules governing ALLBASE/SQL basic names as described in the
ALLBASE/SQL Reference Manual .  
If a module name is not specified with the -p option, the preprocessor uses
the ModifiedSourceFileName as the module name.
If a module name is not specified without the -p option, the preprocessor uses
the SourceFileName as the module name.
-d
deletes any module currently stored in the DBEnvironment by the
ModuleName and OwnerName specified in the command string.  If
not specified, any module having these names is not dropped, and
existing RUN authorities for that module are preserved.
-r
is specified when the program being preprocessed already has a
stored module and you want to revoke existing RUN authorities
for that module.  The -r option cannot be specified unless -d is
also specified.  If the -r option is not specified, it is
assumed that all existing RUN authorities for that module are to
be preserved.
| Description |  |  | 
 When the program being preprocessed already has a stored module,
  be sure to use the -d option, or else an error will result.
  Also, be sure that no one is currently executing the module when
  you invoke the preprocessor.  To avoid conflicts, do your
  preprocessing in single user mode, during off hours.
 The preprocessor starts a DBE session in the DBEnvironment named
  in the preprocessor command by issuing a CONNECT TO
  'DBEnvironmentName' command.  If the autostart flag is OFF, the
  DBE session can be initiated only after a START DBE command has
  been processed.
 If the DBEnvironment to be accessed is operating in single user
  mode, preprocessing can occur only when another DBE session for
  the DBEnvironment does not exist.
 When the preprocessor's DBE session begins, ALLBASE/SQL
  processes a BEGIN WORK command.  When preprocessing is
  completed, the preprocessor submits a COMMIT WORK command, and
  any sections created are committed to the system catalog.  If
  the preprocessor detects an error in the source file, it
  processes a ROLLBACK WORK command before terminating, and no
  sections are stored in the DBEnvironment.  Preprocessor warnings
  do not prevent sections from being stored.
 Since all preprocessor DBE sessions initiate only one
  transaction, any log file space used by the session is not
  available for re-use until after the session terminates.  If
  rollforward logging is not in effect, you can issue the
  CHECKPOINT command in ISQL before preprocessing to increase the
  amount of available log space.  Refer to the ALLBASE/SQL Database Administration Guide  for
  additional information on log file space management, such as
  using the START DBE NEWLOG command to increase the size of the
  log and recovering log space when rollforward logging is in
  effect.
 During preprocessing, system catalog pages accessed for embedded
  commands are locked.  In multi-user mode, other DBE sessions
  accessing the same objects must wait, and the potential for a
  deadlock exists.  Therefore minimize competing transactions when
  preprocessing an application program.  Refer to the "Locks Held
  on the System Catalog by SQL Commands" appendix of the ALLBASE/SQL Database Administration Guide  for
  information on operations that lock system catalog pages.
 For improved runtime performance, use ISQL to issue the UPDATE
  STATISTICS command before preprocessing for each table accessed
  in a data manipulation command when an index on that table has
  been added or dropped and when data in the table is often
  changed.
 If you specify an OwnerName or ModuleName in a language other
  than ASCII, be sure that the language you are using is also the
  language of the DBEnvironment in which the module will be
  stored.
| Authorization |  |  | 
To preprocess a program for the first time in this mode, you
need CONNECT or DBA authority in the DBEnvironment the program
accesses.  After a stored module exists, you need module OWNER
or DBA authority in the DBEnvironment.| Example |  |  | 
| 
   $ psqlpas ../sampledb/PartsDBE -o Karen -m KarensPgm -i prog1.sql -d 
                                              MON JUL 10, 1991  4:48 PM
   HP36217-02A.E1.00      PASCAL Preprocessor/9000           ALLBASE/SQL 
   (C) COPYRIGHT HEWLETT-PACKARD CO. 1982,1983,1984,1985,1986,1987,1988,
   1989,1990,1991.  ALL RIGHTS RESERVED.
     0 ERRORS   1 WARNINGS
   END OF PREPROCESSING.
   $ more sqlmsg
                                              MON JUL 10, 1991  4:48 PM
   HP36217-02A.E1.00      PASCAL Preprocessor/9000           ALLBASE/SQL 
   (C) COPYRIGHT HEWLETT-PACKARD CO. 1982,1983,1984,1985,1986,1987,1988,
   1989,1990,1991.  ALL RIGHTS RESERVED.
   DBEnvironment       = ../sampledb/PartsDBE
   Module Name         = KarensPgm
   ******  SELECT PartNumber, PartName, SalesPrice INTO :PartNumber, :PartName,
    :SalesPrice WHERE PartNumber = :PartNumber
   ******  HP SQL warnings.  (DBWARN 10602)          |
   ******  User Karen does not have SELECT authority on PurchDB.Parts (DBERR 2301)
     1 Sections stored in DBEnvironment.
     0 ERRORS   1 WARNINGS
   END OF PROCESSING
   $
 | 
 |