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