General Principles for Embedding SQL Statements
The following sections discuss host languages, preprocessors, identifying SQL statements, code, comments and recommendations.
You can embed Mimer SQL statements in application programs written in C/C++, COBOL or FORTRAN. The basic principles for writing ESQL programs are the same in all languages and all ESQL statements are embedded in the same way.
Information given in this manual applies to all languages unless otherwise explicitly stated. Language-specific information is detailed in Host Language Dependent Aspects.
Because host language compilers do not recognize ESQL statements as valid, an ESQL preprocessor is required. An ESQL preprocessor processes the SQL statements embedded in a host language.
Identifying SQL Statements
SQL statements are included in the host language source code exactly as though they were ordinary host language statements (i.e. they follow the same rules of conditional execution, etc., which apply to the host language).
SQL statements are identified by the leading keywords EXEC SQL (in all host languages) and are terminated by a language-specific delimiter. Every separate SQL statement must be delimited in this way.
Blocks of several statements may not be written together within one set of delimiters. For instance, in COBOL, two consecutive DELETE statements must be written as:EXEC SQL DELETE FROM countries END-EXEC. EXEC SQL DELETE FROM producers END-EXEC.
and notEXEC SQL DELETE FROM countries DELETE FROM producers END-EXEC.
Single SQL statements can however be split over several lines, following the host language rules for line continuation.
The following embedded statement is thus acceptable in a FORTRAN program (the continuation mark is a + in column 6 on the second line):EXEC SQL DELETE FROM countries + WHERE code = 'BA'
The keywords EXEC SQL may not be split over more than one line.
Any code which is included in the program by the host language compiler (as directed by host language INCLUDE statements) is not recognized by the ESQL preprocessor.
If external source code modules containing SQL statements are to be included in the program, the non-standard SQL INCLUDE statement must be used, for example:EXEC SQL INCLUDE filename
Files included in this way are physically integrated into the output from the preprocessor.
Note: The file name must be enclosed in SQL string delimiters if it contains any non-alphanumeric characters.
Comments may be written in the ESQL program according to the rules for writing comments in the host language. Thus comments may be written within an SQL statement if the host language accepts comments within host language statements.
The following statement is valid in C/C++:EXEC SQL DELETE FROM countries /* Remove Bosnia and Herzegovina */ WHERE code = 'BA';
Note: The keywords EXEC and SQL may not be separated by a comment.
We recommend the following, when using ESQL:
- Avoid variable names beginning with the letters SQL (except for SQLSTATE and SQLCODE, which should be used when appropriate).
- Avoid subroutine or subprogram names ending with a number.
Language-specific restrictions are described in Host Language Dependent Aspects.
Upright Database Technology AB
Voice: +46 18 780 92 00
Fax: +46 18 780 92 40