empesql


EMPESQL(1)                                                          EMPESQL(1)



NAME
       empesql  -  precompiles  C/FORTRAN  programs for EMPRESS Embedded Query
       Language commands

SYNOPSIS
       empesql {[-psmdb  database]}  {[-psmdbs   database  [database...]  --]}
       [-pthread] [-debug] infile.c
         [outfile.c]

       empesql  {[-psmdb  database]}  {[-psmdbs   database  [database...] --]}
       [-pthread] [-debug] infile.pc
         [outfile.c]

       empesql infile.f [outfile.f [supfile.c]]

       empesql infile.pf [outfile.f [supfile.c]]

       empesql infile.c [outfile.c]

DESCRIPTION
       Empesql allows Empress users to issue SQL commands from within their  C
       program.   This  is  accomplished  through calls to the Empress mx rou-
       tines.  On precompilation, SQL commands embedded in  your  program  are
       replaced  with  calls  to  supporting functions.  In the case of C pro-
       grams, if no names are specified outfile.c will default to mpout.c.  In
       the  case of FORTRAN programs, if no names are specified for the gener-
       ated files, outfile.f will default to mpout.f  and  supportfile.c  will
       default to mpsup.c.

       In  order  to  find  the PSM routine name in the corresponding database
       when the program is precompiled, the -psmdb option or -psmdbs  must  be
       used  and the PSM routine name must be found in the listed database(s).
       Otherwise, error message will occur.

       The -psmdb  option  allows  only one  database  name to  be  specified.
       The  -psmdbs  option  can be used to  specify a list of database names.
       The database names are passed as a list  of  arguments and   terminated
       by  "--".   The database name may contain spaces or special characters.
       In the case of -psmdbs  option, quotes (") are needed for these  compex
       database names. Both option can be used repeatedly.

       The  option  -pthread  is used to generate thread-safe code for program
       that is written for the multi-threaded  application.  This  means  that
       Empress  routines  can be invoked in a multi-threaded application. This
       is done by multiple threads in parallel;  however  their  execution  is
       serialized.  The net effect is the same as running in a single threaded
       environment.

       The effect of an ESQL statement is global to all threads.  For example,
       the opening or closing of a table from one thread is visible to all the
       threads within  a  process.  The  multi-threaded  application  has  the
       responsibility for using these ESQL statements in a thread-safe manner,
       which is different from  whether  or  not  these  ESQL  statements  are
       thread-safe.   For  example, a multi-threaded application that closes a
       table that is still in use by other threads within the  application  is
       not using the close statement thread-safely.

       In  particular, various EXEC SQL sequences should be protected by user-
       specified explicit synchronization constructs if they are used in  mul-
       tiple threads. These include transactions: START TRANSACTION, ..., COM-
       MIT/ROLLBACK TRANSACTION and cursor usages: OPEN CURSOR,  FETCH,  CLOSE
       CURSOR.

       Various  global constructs are specified in ANSI SQL for returning sta-
       tus/error information.  The global constructs that are thread-safe are:
       SQLCODE,  SQLCNT and SQLWARN0.  Other global constructs such as SQLCMD,
       SQLWARN1, SQLERRMC and mroperr are not thread-safe.

       The option "-debug" prepares program for use with a debugger.  In order
       to  utilize  this "precompiler" option , pre-compiled program should be
       also compiled and link in the next phase with  debugging  option  (e.g.
       "empecc -g ..." )

FILES
SEE ALSO
       empcc(1), empecc(1), empef77(1)

       Empress Host Language: The SQL Precompiler

DIAGNOSTICS
HISTORY
       Written  by  Empress  Software  Inc..   All material is copyrighted and
       licensed.  Use on non-licensed CPUs is prohibited.



Empress 8.62                 Empress Software Inc.                  EMPESQL(1)