HPlogo ALLBASE/SQL FORTRAN Application Programming Guide: HP 3000 MPE/iX Computer Systems > Chapter 3 Embedding SQL Commands

Declaring Host Variables

» 

Technical documentation

Complete book in PDF
» Feedback

 » Table of Contents

 » Index

Variables used in SQL commands are known as host variables. All host variables used in either a main program unit or a subprogram unit must be declared in the Type Declaration Section of the program unit where the host variable is used. The host variable declarations must be the last declarations in the Type Declaration Section of the program unit which contains the embedded SQL statements and must appear between the two following SQL commands:

     EXEC SQL BEGIN DECLARE SECTION

      .

      .  Host variables are declared here

      .  in FORTRAN variable type descriptions.

      .

     EXEC SQL END DECLARE SECTION

In Figure 3-1, host variable declarations start at 2.

You cannot put more than one such declaration section in a program unit. In addition, you must include the BEGIN DECLARE SECTION and END DECLARE SECTION commands even if there are no host variables used in the embedded SQL commands. This is because the preprocessor includes the variable declaration file after the END DECLARE SECTION command.

The SELECT command shown at 8 in Figure 3-1 uses three host variables for data, one for each of the columns in the PurchDB.Parts table. When used in an embedded SQL command, host variables are preceded with a colon:

   :PartNumber

   :PartName

   :SalesPrice

Because these host variables are for data from a DBEnvironment, the variable types must be compatible with the ALLBASE/SQL data stored in the respective columns:

   CHARACTER*16           PartNumber

   CHARACTER*30           PartName

   DOUBLE PRECISION       SalesPrice

   SQLIND                 SalesPriceInd

The host variable named SalesPrice is accompanied by a second host variable, SalesPriceInd. Known as an indicator variable, this host variable is used to detect null values. If column SalesPrice contains a null value, ALLBASE/SQL returns a negative number to SalesPriceInd. The subprogram unit named DisplayRow examines the value in this indicator variable to determine whether to display the announcement that a Sales Price is null or display the value in SalesPrice.

Indicator variables are declared at 2 in Figure 3-1 as SQLIND. SQLIND is a special declaration reserved for indicator variables.

Feedback to webmaster