Home

The Adabas Precompiler

image

Contents

1. the Adabas application program can be executed Precompiler Options This section contains a survey of all functions of the Adabas precompiler which may be controlled by options The syntax of these options is described separately in the User Manual Unix or User Manual Windows CACHELIMIT lt cachelimit gt CACHELIMIT defines the size of a cache buffer for result tables If the option CHECK or SYNTAX is set this value overrides the value for the database session with the number either specified in a CONNECT statement or predefined A description of the CACHELIMIT is included in the Reference document Section lt create user statement gt and Section lt connect statement gt CHECK NOCHECK The precompiler checks the syntax of all SQL statements the existence of the table and column names as well as their type compatibility with the host variables in use The precompiler opens a database session either under the user name specified in the option or in the CONNECT statement or under the predefined user name and executes all SQL statements according to the order of their occurrence in the program Possible error messages of the database system are output as warnings into the precompiler listing SQL statements which cannot be executed at precompilation time e g dynamic statements are only checked with regard to syntax errors they generate warnings The system tables DOMAIN MOD_USES_TAB or DOMAIN MOD_USES_COL which contain the p
2. COBNAM BZIP COBCITY COBPRICE FROM HOTEL KEY HNO COBHNO L STATEMENT FROM MODULE COBHBL AT LINE 328 EID OUTPUT 000014D9D00000013D000000 EID INPUT 000014D9D00000013D000000 6 PARAMETER 10 PARAMETER 11 PARAMETER CONGRESS PARAMETER 48226 PARAMETER DETROIT PUT 5 PARAMETER 87 50 ERRD INDEX_3 1 RT DATE 2002 02 17 TIME 0013 38 45 DATE 2002 02 17 TIME 0013 38 45 HOC I O O O OU O S S E SQL STATEMENT FROM MODULE COBHBL AT LINE 315 PARSEID INPUT 000014D9CD0000013C002C00 INP PARAMETER WARNING W e SSeS SQLERRD INDEX_3 START DATE 2002 02 17 TIME 0013 38 45 END DATE 2002 02 17 TIME 0013 38 45 SQL STATEMENT FROM MODULE COBHBL AT LINE 319 PARSEID INPUT 000014D9CE0000011C002A00 OUTPUT 1 PARAMETER 11 11 01 OUTPUT 2 PARAMETER 30 11 01 SQLERRD INDEX_3 1 START DATE 2000 02 17 TIME 0013 38 45 END DATE 2000 02 17 TIME 0013 38 45 Profiling When the option PROFILE is enabled during an application program s run statistical data on the processed SQL statements may be obtained To obtain results however the table SYSPROFILE system table of the LOCALS YSDBA must have been created when initializing the database If this has not been done the table has to be created first Definition of the table 14 Profiling
3. TRACE OFF enclose the SQL statements whose execution is to be recorded in the trace file The directives are written into the program like SQL statements e g EXEC SQL SET TRACE LONG END EXEC The trace file contains all SQL statements enclosed by the directives including those SQL statements which are executed within called subroutines The name of the trace file is standardized according to the operating system conventions The next level comprises program units such as modules and subroutines which can be translated separately The SQL statements contained there are recorded in the trace file according to their logical sequence in the program Any existing TRACE statements are rendered inoperative The trace file is enabled with precompiler options The first lt trace filename gt addressed will be the name of the trace file This name is either formed from the lt trace filename gt or from the program name and a suffix The highest level is the trace of the entire application If a trace option is specified when calling an Adabas application a trace file is opened for all executed SQL statements 11 The Adabas Precompiler The Trace File A comment line can be inserted into the trace file via the SQL statement EXEC SQL SET TRACE LINE The Trace File The trace file contains information sent to or received from the interface to the Adabas kernel The SQL statements are only recorded for parse requests to the kernel The parse iden
4. The Adabas Precompiler EXEC SQL CREATE TABLE SYSPROFILE USERNAME CHAR 18 KEY PROGNAME CHAR 18 KEY MODNAME CHAR 18 KEY LANGUAGE CHAR 12 KEY LINENO FIXED 7 KEY PARSEID CHAR 12 BYTE KEY STMBEGIN CHAR 40 RUNDATE DATE RUNCOUNT FIXED 10 SECONDS FIXED 12 3 END EXEC For every SQL statement the beginning of statement date of runtime number of calls and accumulated realtime is entered into the table The time consists of the time taken by the processing of a statement within an application program including all data conversions and time needed by the Adabas kernel The time needed to enter this information into the table SYSPROFILE however is not included The key of a row consists of the following specifications user name program name module name language of the application program and line number of the statement in the application program related to the source and the internal parseid The parseid was integrated into the key in order to be able to distinguish dynamic statements With the enabled TRACE option the time required for writing the trace file affects the profiling Therefore it is not convenient to activate the PROFILE and TRACE options at the same time The entries to the SYSPROFILE table are made within the transactions of the application program Therefore they are only stored in the table when the application program issues a COMMIT WORK When the option is enabled old entries made f
5. on all sessions with the number 1 USERKEY lt userkey gt A USERKEY can be specified here The pertinent user the database TIMEOUT CACHELIMIT and isolation level are fetched from the XUSER file The corresponding database can then be accessed by means of this user id This option has only an effect on the session with the session number 1 It overrides either the user specification made in the CONNECT statement or the predefined user specifications User Specifications for the Application There can be 1 to 8 concurrent database sessions multi DB mode so that user specifications have to be available for each database session The following precedence rules apply for the user specifications 1 If no CONNECT statement is specified for the database session in the application program the user specifications are taken from the XUSER file 2 If a database session is opened via a CONNECT statement those user specifications are taken which 10 are made in the CONNECT statement Missing specifications are fetched from the corresponding XUSER parameter combination Precompiler Debugging Aids The Adabas Precompiler 3 For the database session with the number 1 the user specifications can be overridden If the isolation level was set by means of the corresponding precom option it can only be overridden by a runtime option Precompiler Debugging Aids Test functions are available at precompilation time as well as at the appl
6. The Adabas Precompiler The Adabas Precompiler The Adabas Precompiler The Adabas precompiler is a program which is executed before the programming language compiler The basic function of the precompiler is to translate all the SQL statements into statements of the corresponding programming language In this process the precompiler only translates those pieces of information contained in a program which are needed for compiling the SQL statements The language compiler will then decide whether the program is correct according to the programming language description The precompiler has additional functions which are described in the following section This chapter covers the following topics Adabas Precompiler Functions Functions of the Adabas Runtime System Precompiler Debugging Aids Adabas Precompiler Functions The precompiler opens the database session under a user name which can be specified as a parameter of the call This user name does not need to be identical to the Adabas user name used during the execution of the program If the username is not specified as a parameter then the CONNECT that is statically placed in the module as the first statement is taken If the first statement is not a CONNECT a database session is opened with predefined user specifications The precompiler checks the compatibility of the corresponding host variables and Adabas column types In doing so the rules specified for the conversion poss
7. ce File The Adabas Precompiler SELECT NEXT HNO NAME ZIP CITY PRICE INTO COBHNO COBNAME COBZIP COBCITY COBPRICE FROM HOTEL KEY HNO COBHNO SQL STATEMENT FROM MODULE COBHBL AT LINE 328 PARSEID OUTPUT 000014D1D00000013D000000 PARSEID INPUT 000014D1D00000013D000000 INPUT 6 COBHNO 10 OUTPUT 1 COBHNO 11 OUTPUT COBNAME CONGRESS OUTPUT 3 COBZIP 48226 OUTPUT lt COBCITY DETROIT OUTPUT 5 COBPRICE 87 50 SQLERRD INDEX_3 1 START DATE 2002 02 17 TIME 0013 12 26 END DATE 2002 02 17 TIME 0013 12 26 SQL STATEMENT FROM MODULE COBHBL AT LINE 315 PARSEID INPUT 000014D1CD0000013C002C00 INPUT 1 COBHNO 81 WARNING W G ss S SQLERRD INDEX_3 4 START DATE 2002 02 17 TIME 0013 12 26 END DATE 2002 02 17 TIME 0013 12 26 SQL STATEMENT FROM MODULE COBHBL AT LINE 319 PARSEID INPUT 000014D1CE0000011C002A00 OUTPUT 1 COBADAT 11 11 2001 OUTPUT 2 COBEDAT 30 11 2001 SQLERRD INDEX_3 1 START DATE 2002 02 17 TIME 0013 12 26 END DATE 2002 02 17 TIME 0013 12 26 If the detailed form of the trace file is only required for the program run the names of the host variables are not available The input and output values of the host variables concerned only get the numbers of the parameters Example 13 The Adabas Precompiler Profiling LECT NEXT HNO NAME ZIP CITY PRICE INTO COBHNO
8. cter string literals are represented within the program either by the character SINGLE or by the character DOUBLE SERVERDB lt serverdb gt If the option CHECK or SYNTAX is set a SERVERDB name can be specified here under which the database will be accessed at precompilation time This option has an effect on all sessions with the number 1 When precompiling this option overrides either the specifications made in the CONNECT statement or the predefined user specifications It is not passed to the application program The Adabas Precompiler Precompiler Options SERVERNODE lt servernode gt If the option CHECK or SYNTAX is set a node name can be specified here under which the database will be accessed at precompilation time This option has an effect on all sessions with the number 1 When precompiling this option overrides either the specifications made in the CONNECT statement or the predefined user specifications It is not passed to the application program SILENT No output is made on to the screen SOURCEFORMAT If this option is set the COBOL program has a free format The lines are not numbered columns 1 to 6 Comments are denoted in the first column Continuation characters if permitted by the COBOL compiler have to be specified in the first column The line length can be determined with the option MARGINS For more detailed information about the free format see the COBOL user manuals SQLMODE ADABAS T
9. e locks have to be set to a database during precompilation This option is only passed to the application program and has only an effect on the session with the number 1 It overrides the level specification for all CONNECT statements with the session number 1 made in an application program It may be overridden by the same runtime option when starting the application program LIST A precompiler listing is generated If this option is not specified the precompiler listing only consists of warnings and error messages MARGINS lt leftmargin gt lt rightmargin gt This option can be used to determine the range of lines in which the precompiler has to work This option only makes sense with a free format SOURCEFORMAT option NOWARN The warnings 733 735 853 884 and 885 are not output PRECOM The compiler will not be started after precompilation The source file is saved for the compiler PROFILE The precompiler generates code for profiling the SQL statements Profiling is started with a runtime option PROGRAM lt program name gt When using the option CHECK a program name can be specified here related to which the names of the tables and columns used in the program are stored in the system tables These entries can be looked up via a SELECT on DOMAIN MOD_USES_TAB or DOMAIN MOD_USES_COL The default value of lt program name gt is the filename of the source program QUOTE SINGLE DOUBLE The delimiters for chara
10. his is the native mode of an SQL application and the default value of the SQLMODE option SQLMODE ANSI This mode ensures ANSI compatibility of all SQL statements Variables and statements must be defined in the program according to the ANSI standard When this option is enabled some positive error situations are transformed into negative error messages see Section ANSI Compatibility SQLMODE ORACLE This mode ensures Oracle compatibility of all SQL statements The precompiler generates the definition of the ORACLE SQLCA and SQLDA Variables and statements must be defined in the program according to the Oracle standard TIMEOUT lt timeout gt This option can be used to specify the SESSION TIMEOUT for the session with the number 1 When precompiling this option overrides either the specifications made in the CONNECT statement or the predefined user specifications It is not passed to the application program TRACE FILE lt trace filename gt This option can be used to specify a name other than the default name for the trace file If no other trace option was specified the option TRACE SHORT is simultaneously enabled by default The filename is standardized according to the operating system conventions in the User Manual Unix or User Manual Windows The name may also be specified optionally as a character string constant This option is only passed to the application program It may be overridden in the application program by
11. ibilities apply The precompiler actually executes administrative statements CREATE TABLE etc and resets their effects at the end of the precompiler run The precompiler analyzes the syntax of table statements INSERT SELECT etc and checks them with regard to the privileges When accessing existing tables it is important that they are already available for the Adabas user whose name is used by the precompiler The precompiler enters the names of the tables the program processes into system tables Afterwards the relations of the programs and used tables can be shown via select statements performed on the tables DOMAIN MOD_USES_TAB or DOMAIN MOD_USES_COL These tables are described in the Reference document The precompiler generates the compiler input transforming the embedded SQL statements into calls of procedures of the Adabas precompiler runtime system Translation of an Adabas Application Program 1 Start of the Adabas precompiler and of the compiler of the chosen programming language The Adabas Precompiler Translation of an Adabas Application Program Adabas Programming Language Source Precompiler Adabas Catalog Listing Expanded Source Program Compiler Listing Object Progran 2 Generation of a load module Object Program Runtime System Runtime System Precompiler Compiler Linkage Editor Loader Vv Load Module Precompiler Options The Adabas Precompiler 3 Subsequently
12. ication s runtime Testing at Precompilation Time Depending on options set Adabas can either check only the syntax of an SQL statement SYNTAX or also the availability of the specified tables and columns and the compatibility of their types with the host variables CHECK For this purpose a database session is opened and all SQL statements are executed at precompilation time The effects of the SQL statements are cancelled after precompilation The option USER specified in the program determines under which identification this database session is to be performed A CONNECT statement which might be included in a program will be rejected with the error message 3005 INVALID COMMAND The SQL statements are executed in the sequence of their static placement within the text not in the dynamic order of the program statements For various statements e g dynamic SQL statements only a syntax check can be performed Since the control flow of the application is not taken into consideration when testing with the precompiler the interrelations of the SQL statements cannot be traced by means of this mechanism The results of the precompiler tests are stored in the precompiler listing Trace Facility of the Adabas Application The trace of an Adabas application can be activated at three levels whereby the results are recorded in a special trace file The lowest level is that of the SQL statement The precompiler directives TRACE TRACE LONG and
13. iles Source and error listing Errors are written to the precompiler protocol file If errors occur before this file can be opened e g in the option specifications they are written into a special error file SQLERROR which is described in more detail in the User Manual Unix or User Manual Windows Object module The file is linked to an executable module together with other object modules and the runtime system Trace file This file contains the executed SQL statements Functions of the Adabas Runtime System Values are assigned from host variables to database columns and vice versa and values are converted NULL values undefined column values are indicated by indicator variables If database errors occur the default error handling routines defined in the program are performed Runtime Options This section contains a survey of all runtime options They can be specified when an Adabas application is started CACHELIMIT lt cachelimit gt CACHELIMIT defines the size of a cache buffer for result tables This option overrides the value in a CONNECT statement or the predefined value It affects only the database session with the number 1 A description of CACHELIMIT is included in the Reference document Section lt create user statement gt and Section lt connect statement gt ISOLATION LEVEL lt level number gt A level number can be specified here under which the locks will be set to a database This option on
14. ly has an effect on the session with the number 1 It overrides the level number in the specified CONNECT statement and the level number passed during the precompiler run MFETCH lt number gt This option can be used to optimize access for FETCH statements Number indicates the number of 8k byte buffers into which rows of different result tables can be stored simultaneously thus enabling faster access to the rows lt number gt is preset to 1 If a trace option is active the MFETCH option has no effect Runtime Options The Adabas Precompiler NODATE This option can be used to suppress the specification of the START and END date as well as the START and END time in trace output NO SELECT DIRECT FAST This option can be used to disable the optimization of the SELECT DIRECT statements This is necessary especially if the error 9806 occurs The optimization only has an effect when repeating the SELECT DIRECT statement PROFILE This option can be used to enable a profile which calculates the complete time of processing If the table SYSPROFILE is available for the LOCALS YSDBA the values will be written to this table see Section Profiling SERVERDB lt serverdb gt This option has an effect on every session with the number 1 The option overrides the specifications of the CONNECT statement made in the application program or the predefined user specifications SERVERNODE lt servernode gt This option has an effect on e
15. number 1 VERSION This option can be used to see information about the version used User Specifications for a Precompiler Run User specifications for the precompiler call are only required when the option CHECK default or SYNTAX is set If the application runs in multi db mode user specifications are needed for each of the up to eight database sessions If the precompiler option NOCHECK is set a database session is not opened so that no user specifications are necessary The concept of how a user can connect to a database the possible user specifications and the syntax according to which the user specifications have to be made are described in the User Manual Unix or User Manual Windows The following precedence rules are applied to the user specifications USER PASSWORD SERVERNODE SERVERDB TIMEOUT CACHELIMIT SQLMODE and isolation level 1 If the statically first SQL statement of a database session is not a CONNECT statement then all the user specifications are fetched from the XUSER file 2 If the statically first SQL statement of a database session is a CONNECT statement then all the specifications made in this statement are taken and the missing specifications are fetched from the XUSER file The Adabas Precompiler Functions of the Adabas Runtime System 3 For the database session with the number 1 the user specifications can be overridden by means of the corresponding precompiler options Precompiler Output F
16. or username program name and language are always deleted at the beginning of the program After the run the table LOCALSYSDBA SYSPROFILE may be looked up by means of Query and the stored data may be evaluated The entries remain in the table until they are deleted explicitly or the program is restarted with the PROFILE option 15
17. race filenames are not buffered on output The Adabas Precompiler User Specifications for the Application TRACE LONG Each executed SQL statement is written into a file together with the values of all SQL statements the SQLCODE if not equal to zero the warnings if warnings exist and the SQLERRD INDEX_3 value This option overrides the option transferred during the precompiler run and the statements specified in the application program TRACE NO DATE TIME This option can be used to suppress the output of the date and time specifications for the start and end of the execution of an SQL statement made into the trace file TRACE SHORT Each executed SQL statement is written into a file together with the SQLCODE if not equal to zero the warnings if warnings exist and the SQLERRD INDEX_3 value This option overrides the option transferred during the precompiler run and the statements specified in the application program TRACE TIME lt seconds gt Only SQL statements are recorded whose execution time is greater than or equal to lt seconds gt The SQL statements are recorded together with the contents of the host variables trace long Date and time specifications cannot be suppressed USER lt userid gt lt password gt If the application program is performed under a USER other than specified in the CONNECT statement or in the predefined user specifications this user can be specified here This option has an effect
18. rogram data relationships are maintained When starting the precompiler run all entries stored in the corresponding tables relating to the CONNECT user name and program name or module name are deleted At the regular end of the precompiler run no errors new entries are made in the corresponding tables The option NOCHECK does not establish a connection to the database It is therefore possible to precompile without a started database CHECK SYNTAX The syntax of all SQL statements is checked and possible Adabas error messages are written into the precompiler listing COMMENT All SQL statements are written as comments into the compiler listing or into the source file saved for the compiler COMPATIBLE With Version 6 1 new language elements are integrated into the embedded SQL see Section EXEC SQL lt n gt lt array statement gt These elements may change the interpretation of programs written for former versions The option COMPATIBLE enforces the old interpretation and therefore guarantees upward compatibility This option need only be specified if an error message occurs during re precompilation of an existing program In any case new programs should be written in such a way that they may be precompiled without this option The Adabas Precompiler DATE TIME EUR Precompiler Options This option can be used to set the date and time representation to EUROPE It is passed to the application program DATE TIME ISO This op
19. the same runtime option User Specifications for a Precompiler Run The Adabas Precompiler TRACE LONG Each SQL statement is written into a file together with the values of all host variables the SQLCODE not equal to zero the warnings if warnings exist and the SQLERRD INDEX_3 value This option is only passed to the application program It may be overridden in the application program by the same runtime option TRACE SHORT Each executed SQL statement is written into a file together with the SQLCODE not equal to zero the warnings if warnings exist and the SQLERRD INDEX_53 value This option is only passed to the application program It may be overridden in the application program by the same runtime option USER lt userid gt lt password gt If the option CHECK or SYNTAX is set a user name can be specified here under which the database will be accessed This option only has an effect on the session with the number 1 When precompiling this option overrides either the specifications made in the CONNECT statement or the predefined user specifications It is not passed to the application program USERKEY lt userkey gt If the option CHECK or SYNTAX is set a USERKEY can be specified here The pertinent user the database TIMEOUT CACHELIMIT and SQLMODE are fetched from the XUSER file The corresponding database can then be accessed by means of this user id This option only has an effect on the session with the session
20. tification parseid can be used to find out which SQL statement is currently executed The information contained in the trace file depends on the TRACE statement or TRACE option For a simple TRACE only the sequence of SQL statements sent to the database system is recorded which helps when checking dynamic SQL statements and macros A DECLARE CURSOR statement will only be executed when the result table is opened OPEN statement In the trace file it can therefore be found exactly at this place The OPEN statement is only denoted by a comment SQLERRD INDEX_3 contains the number of processed rows Example SELECT NEXT HNO NAME ZIP CITY PRICE INTO COBHNO COBNAME COBZIP COBCITY COBPRICE FROM HOTEL KEY HNO COBHNO SQL STATEMENT FROM MODULE COBHBL AT LINE 328 PARSEID OUTPUT 000014DBD00000013D000000 PARSEID INPUT 000014DBD00000013D000000 SQLERRD INDEX_3 1 START DATE 2002 02 17 TIME E 0013 39 44 END DATE 2002 02 17 TIME 0013 39 44 SQL STATEME FROM MODULE COBHBL AT LINE PARSEID 000014DBCD0000013C002C00 WARNING W Saas Tes SQLERRD INDEX_3 4 START DATE 2002 02 17 TIME 0013 39 44 END E 2002 02 17 TIME 0013 39 44 If the detailed form of the trace file is required the input and output values of the SQL parameters involved are also included Example 12 The Tra
21. tion can be used to set the DATE and TIME representation to ISO It is passed to the application program DATE TIME JIS This option can be used to set the date and time representation to JIS It is passed to the application program DATE TIME USA This option can be used to set the date and time representation to USA It is passed to the application program Representation Date Time Date Time Timestamp ISO USA EUR JIS INTERNAL Default yyyy mm dd mm dd yyyy dd mm yyyy yyyy mm dd yyyymmdd hh mm ss hh mm AM hh mm ss hh mm ss hhhhmmss DECPOINT POINT COMMA yyyy mm dd hh mm ss mmmmmm yyyy mm dd hh mm ss mmmmmm yyyy mm dd hh mm ss mmmmmm yyyy mm dd hh mm ss mmmmmm yyyymmddhhmmssmmmmmm For every program you can choose between point and comma for the decimal representation of real numbers EXTERN A module precompiled with the option EXTERN can be linked to modules of other language precompilers The module itself must not be a main program The SQLCA and SQLDA if needed must be transferred to the subroutines as parameters HELP This option displays all the precompiler and precompiler runtime options application programs on the terminal Precompiler Options The Adabas Precompiler ISOLATION LEVEL lt level number gt If the option CHECK or SYNTAX is set the level number 10 default value is always specified for the CONNECT Under this number th
22. very session with the number 1 The option overrides the specifications of the CONNECT statement made in the application program or the predefined user specifications TIMEOUT lt timeout gt This option can be used to specify the SESSION TIMEOUT for the session with the number 1 This option overrides the timeout specifications made in the indicated CONNECT statement It has an effect on all sessions with the number 1 TRACE ALT lt statement count gt Trace output is made alternately to two files When doing so as many SQL statements are recorded in each file as are specified in lt statement count gt If there are more SQL statements than indicated by lt statement count gt the files will be overwritten cyclically The trace files are named fn pct and fn prot The SQL statements are recorded together with the contents of the host variables trace long Date and time specifications cannot be suppressed TRACE FILE lt trace filename gt This option can be used to specify a name other than the default name to the trace output If no other trace option was specified the option TRACE SHORT is simultaneously enabled by default The filename is standardized according to the operating system conventions in the User Manual Unix or User Manual Windows The name may also be specified optionally as a character string constant This option overrides the option transferred during the precompiler run Only trace files with default t

Download Pdf Manuals

image

Related Search

Related Contents

Maytag PYG4557AWW Specifications  ŠkodaSuperb USO E MANUTENZIONE  ASUS F200CA-KX091H  GV-Web Report    mathblog User`s Manual  Manual de instalación_Omnipower3  Adaptateur de réseau pour les scanners de documents fi  

Copyright © All rights reserved.
Failed to retrieve file