Contents Index SQLCA management for multi-threaded or reentrant code When to use multiple SQLCAs

ASA Programming Guide
  Embedded SQL Programming
    The SQL Communication Area (SQLCA)

Using multiple SQLCAs


To manage multiple SQLCAs in your application

  1. You must use the option on the SQL preprocessor that generates reentrant code (-r). The reentrant code is a little larger and a little slower because statically initialized global variables cannot be used. However, these effects are minimal.

  2. Each SQLCA used in your program must be initialized with a call to db_init and cleaned up at the end with a call to db_fini.

    Caution    Failure to call db_fini for each db_init on NetWare can cause the database server to fail and the NetWare file server to fail.

  3. The embedded SQL statement SET SQLCA (SET SQLCA statement [ESQL]) is used to tell the SQL preprocessor to use a different SQLCA for database requests. Usually, a statement such as: EXEC SQL SET SQLCA 'task_data->sqlca'; is used at the top of your program or in a header file to set the SQLCA reference to point at task specific data. This statement does not generate any code and thus has no performance impact. It changes the state within the preprocessor so that any reference to the SQLCA uses the given string.

For information about creating SQLCAs, see SET SQLCA statement [ESQL].


When to use multiple SQLCAs
Connection management with multiple SQLCAs

Contents Index SQLCA management for multi-threaded or reentrant code When to use multiple SQLCAs