HP 3000 Manuals

Using the Preprocessor UDCs [ ALLBASE/SQL Pascal Application Programming Guide ] MPE/iX 5.0 Documentation


ALLBASE/SQL Pascal Application Programming Guide

Using the Preprocessor UDCs 

Two UDCs for invoking the PASCAL preprocessor are provided with
ALLBASE/SQL in the HPSQLUDC.PUB.SYS file:

   *   PPAS, illustrated in Figure 2-15, invokes the preprocessor in full
       preprocessing mode.  You specify the source file name, a
       DBEnvironment name, and a name for SQLMSG (if you do not want
       preprocessor messages to go to $STDLIST). See Figure 2-16.

            :PPAS SourceFileName,DBEnvironment 

       The PPAS UDC uses the following preprocessor parameters:

          *   ModuleName is the name of the source file.

          *   OwnerName is the logon User@Account.

          *   PRESERVE and DROP are in effect.

   *   PPPAS, illustrated in Figure 2-16, invokes the preprocessor in
       full preprocessing mode, then invokes the PASCAL compiler if
       preprocessing is successful, and then the linker if compilation is
       successful.

       To use this UDC, you specify the source file name, a DBEnvironment
       name, and an executable file name.  You can specify a name for
       SQLMSG if you do not want preprocessor messages to go to $STDLIST:

            :PPPAS SourceFileName, DBEnvironmentName, ExecutableFileName 

       This UDC uses the following preprocessor INFO string parameters:

          *   ModuleName is the source file name.

          *   OwnerName is the logon User@Account.

          *   PRESERVE and DROP are in effect.


NOTE If you make your own version of the UDCs, do not modify the record attributes for any of the preprocessor output files. Only modify the file limit (disc=FileLimit) if required. Because the UDCs purge the preprocessor message file, if messages are sent to $STDLIST, an error message appears when you use the UDCs, but preprocessing continues.
________________________________________________________ | | | PPAS srcfile,dbefile,msgfile=$stdlist | | continue | | setvar _savefence hpmsgfence | | setvar hpmsgfence 2 | | continue | | purge !msgfile | | purge sqlout | | purge sqlmod | | purge sqlvar | | purge sqlconst | | purge sqltype | | purge sqlextn | | setvar hpmsgfence _savefence | | deletevar _savefence | | file sqlin = !srcfile | | file sqlmsg = !msgfile; rec=-80,16,f,ascii | | file sqlout; disc=10000,32; rec=-80,16,f,ascii| | file sqlmod; disc=1023,10,1; rec=250,,f,binary | | file sqlvar; disc=2048,32; rec=-80,16,f,ascii| | file sqlconst; disc=2048,32; rec=-80,16,f,ascii| | file sqltype; disc=2048,32; rec=-80,16,f,ascii| | file sqlextn; disc=2048,32; rec=-80,16,f,ascii| | continue | | run psqlpas.pub.sys;info="!dbefile (drop)" | | reset sqlin | | reset sqlmsg | | reset sqlout | | reset sqlmod | | reset sqlvar | | reset sqlconst | | reset sqltype | | reset sqlextn | ________________________________________________________ Figure 2-15. UDC for Preprocessing SQLIN ________________________________________________________ | | | PPPAS srcfile,dbefile,pgmfile,msgfile=$stdlist | | continue | | setvar _savefence hpmsgfence | | setvar hpmsgfence 2 | | continue | | purge !msgfile | | purge sqlout | | purge sqlmod | | purge sqlvar | | purge sqlconst | | purge sqltype | | purge sqlextn | | setvar hpmsgfence _savefence | | deletevar _savefence | | file sqlin = !srcfile | | file sqlmsg = !msgfile; rec=-80,16,f,ascii | | file sqlout; disc=10000,32; rec=-80,16,f,ascii| | file sqlmod; disc=1023,10,1; rec=250,,f,binary | | file sqlvar; disc=2048,32; rec=-80,16,f,ascii| | file sqlconst; disc=2048,32; rec=-80,16,f,ascii| | file sqltype; disc=2048,32; rec=-80,16,f,ascii| | file sqlextn; disc=2048,32; rec=-80,16,f,ascii| | continue | | run psqlpas.pub.sys;info="!dbefile (drop)" | | if jcw <= warn then | | continue | | pasxllk sqlout,!pgmfile,$null | | endif | | reset sqlin | | reset sqlmsg | | reset sqlout | | reset sqlmod | | reset sqlvar | | reset sqlconst | ________________________________________________________ Figure 2-16. UDC for Preprocessing, Compiling, and Preparing SQLIN The example in Figure 2-17 illustrates the use of PPPAS on an SQLIN that could be successfully preprocessed, but failed to compile because a Pascal error exists in the file. ______________________________________________________________________________ | | | :PPPAS pasex2,PartsDBE,pasex2p | | | | FRI, AUG 7, 1990, 3:43 PM | | 36216-02A.E1.00 PASCAL Preprocessor/3000 ALLBASE/SQL | | (C) COPYRIGHT HEWLETT-PACKARD CO. 1982,1983,1984,1985,1986,1987,1988, | | 1989,1990,1991. ALL RIGHTS RESERVED. | | | | | | SQLIN = PASEX2.SomeGrp.SomeAcct | | DBEnvironment = PartsDBE | | | | Module Name = PASEX2 | | | | 1 Sections stored in DBEnvironment. | | | | 0 ERRORS 0 WARNINGS | | END OF PREPROCESSING | | | | END OF PROGRAM | | | | PAGE 1 HEWLETT-PACKARD HP (part no.) PASCAL/3000(C) | | HEWLETT-PACKARD | | CO. ... | | | | 81 286.000 1 writln('Begin Work'); | | ^ | | **** ERROR # 1 IDENTIFIER NOT DEFINED (014) | | | | NUMBER OF ERRORS = 1 NUMBER OF WARNINGS = 0| | PROCESSOR TIME 0: 0:13 ELAPSED TIME 0: 0:25 | | NUMBER OF LINES = 455 LINES/MINUTE = 2100.0 | | | | pascalxl.pub.sys;parm=7;info=" " | | PROGRAM TERMINATED IN AN ERROR STATE. (CIERR 976) | | COMPILE STEP FAILED, NO LINK WAS DONE. | ______________________________________________________________________________ Figure 2-17. Sample UDC Invocation


MPE/iX 5.0 Documentation