HP 3000 Manuals

Syntax Checking Mode [ ALLBASE/SQL Advanced Application Programming Guide ] MPE/iX 5.0 Documentation


ALLBASE/SQL Advanced Application Programming Guide

Syntax Checking Mode 

In syntax checking mode, the preprocessor checks SQL syntax only.  This
mode can be useful as you develop the SQL portions of your applications.
Preprocessing is quickest in this mode.  In addition, you can start
debugging your SQL statements before the DBEnvironment itself is in
place. 

Syntax Checking Mode Syntax Specification 

Syntax Checking Mode for C Applications.   

                                 [FLAGGER (FlaggerName)]
:RUN PSQLC.PUB.SYS;INFO="(SYNTAX [ANSI                 ])"
                                 [THREAD               ]

Syntax Checking Mode for COBOL Applications.   

:RUN PSQLCOB.PUB.SYS;INFO="(SYNTAX [FLAGGER (FlaggerName)])"
                                   [ANSI                 ]

Syntax Checking Mode for FORTRAN Applications.   

:RUN PSQLFOR.PUB.SYS;INFO="(SYNTAX [FLAGGER (FlaggerName)])"
                                   [ANSI                 ]

Syntax Checking Mode for Pascal Applications.   

:RUN PSQLPAS.PUB.SYS;INFO="(SYNTAX [FLAGGER (FlaggerName)])"
                                   [ANSI                 ]

Parameters 

SYNTAX                  causes the preprocessor to only check SQL syntax.

FlaggerName             is the name of the flagger being invoked.  At
                        this release FIPS127.1 is the only valid
                        FlaggerName.  FlaggerName is not case sensitive.
                        Refer to the "Flagging Non-Standard SQL with the
                        FIPS Flagger" chapter in this manual.

ANSI                    preprocesses the application in ANSI mode.  The
                        preprocessor generates an SQLCA declaration
                        automatically and implicit updatability is in
                        effect.  Refer to the sections "Understanding
                        Implicit Updatability" and "Declaring the SQLCA"
                        in this manual.

THREAD                  For C applications only; used to support threaded
                        applications.  When specified, the C preprocessor
                        will not generate the #include "SQLVAR" line at
                        the beginning of SQLOUT. The user must insert a
                        #include "SQLVAR" wherever local variables are
                        required to compile and utilize application
                        threads successfully.

Description 

   *   The preprocessor does not access a DBEnvironment when it is run in
       this mode.

   *   When performing syntax only checking, the preprocessor does not
       convert embedded SQL statements into constructs for the
       programming language being used.  Therefore the modified source
       code file does not contain preprocessor generated calls to
       ALLBASE/SQL external procedures.

   *   The include and installable module files are created, but are
       incomplete.

   *   When you invoke the preprocessor with the FLAGGER option, your
       application must contain an ANSI mode compiler directive in order
       for the compiler to detect non-standard statements.  The following
       table lists the appropriate directive for each language:

---------------------------------------------------------------------------------------------
|                                             |                                             |
|                  Language                   |                  Directive                  |
|                                             |                                             |
---------------------------------------------------------------------------------------------
|                                             |                                             |
|                      C                      |            ccxl ...  ;info='-Aa'            |
|                                             |                                             |
---------------------------------------------------------------------------------------------
|                                             |                                             |
|                    COBOL                    |              $CONTROL STDWARN               |
|                                             |                                             |
---------------------------------------------------------------------------------------------
|                                             |                                             |
|                   FORTRAN                   |              $OPTION ANSI ON$               |
|                                             |                                             |
---------------------------------------------------------------------------------------------
|                                             |                                             |
|                   Pascal                    |           $standard_level 'ANSI'$           |
|                                             |                                             |
---------------------------------------------------------------------------------------------

Authorization 

You do not need ALLBASE/SQL authorization when you use the preprocessor
to only check SQL syntax.

Example of Syntax Checking of a C Application 

     :FILE SQLIN=CEX2 
     :RUN PSQLC.PUB.SYS;INFO="(SYNTAX)" 

                                                WED, OCT 25, 1991,  1:38 PM
     HP36216-02A.E1.02              C Preprocessor/3000         ALLBASE/SQL
     (C)COPYRIGHT HEWLETT-PACKARD CO.   1982,1983,1984,1985,1986,1987,1988,
     1989,1990,1991. ALL RIGHTS RESERVED.

     Syntax checked.
      1 ERRORS     0 WARNINGS
     END OF PREPROCESSING.

     PROGRAM TERMINATED IN AN ERROR STATE.  (CIERR 976)
     :EDITOR
     HP32501A.07.20 EDIT/3000 FRI, OCT 27, 1991,  9:35 AM
     (C) HEWLETT-PACKARD CO. 1985
     /T SQLMSG;L ALL UNN
     FILE UNNUMBERED

                   .
                   .
                   .
     SQLIN                = CEX2.SOMEGRP.SOMEACCT

             SELECT PARTNUMBER, PARTNAME, SALESPRICE INTO :PARTNUMBER, :PARTNAME,
             :SALESPRICE :SALESPRICEIND, FROM PURCHDB.PARTS WHERE PARTNUMBER =
             :PARTNUMBER ;

     ******  ALLBASE/SQL errors (DBERR 10977)
     ******  in SQL statement ending in line 176
     ***     Unexpected keyword.  (DBERR 1006)

     Syntax checked.

      1 ERRORS   0 WARNINGS
     END OF PREPROCESSING.

     /

          The line 176 referenced in SQLMSG is the line in 
          SQLIN where the erroneous SQL statement ends. 



MPE/iX 5.0 Documentation