When the database server executes an SQL statement successfully,
but encounters a warning condition, it updates the following two fields
in the sqlca.sqlwarn structure:
It sets the sqlca.sqlwarn.sqlwarn0 field to the letter W.
It sets one other field within the sqlwarn structure (sqlwarn1 to sqlwarn7)
to the letter W to indicate the specific warning
condition.
These warnings are specific to HCL Informix®. Fields of the sqlca
structure contains
two sets of warning conditions that can occur in the fields of the sqlca.sqlwarn structure.
The first set of warnings, shown in Fields of the sqlca
structure, occurs
after the database server opens a database or establishes a connection.
For more information about these conditions, see Determine features of the database server. The second set
of warnings is for conditions that can occur as a result of other
SQL statements.
To test for warnings, check whether the first warning
field (sqlwarn0) is set to W. After you determine
that the database server has generated a warning, you can check the
values of the other fields in sqlca.sqlwarn to identify the
specific condition. For example, if you want to find out what database
a CONNECT statement has opened, you can use the code that the following
figure shows. Figure 1: Code fragment that checks for warnings after a CONNECT statement
int trans_db, ansi_db, us_db = 0;
⋮
msg = "CONNECT stmt";
EXEC SQL connect to 'stores7';
if(SQLCODE < 0) /* < 0 is an error */
err_chk(msg);
if (sqlca.sqlwarn.sqlwarn0 == 'W')
{
if (sqlca.sqlwarn.sqlwarn1 == 'W' )
trans_db = 1;
if (sqlca.sqlwarn.sqlwarn2 == 'W' )
ansi_db = 1;
if (sqlca.sqlwarn.sqlwarn3 == 'W' )
us_db = 1;
}