SQL/MP Programming Manual for C
Error and Status Reporting
HP NonStop SQL/MP Programming Manual for C—429847-008
9-9
Using the WHENEVER Directive
Using an Aggregate Function 
All aggregate functions except COUNT return a null value when operating on an empty 
set. If a host variable receives the null value as the result of an aggregate function, 
specify a corresponding indicator variable and test the result of the indicator variable. 
Otherwise, NonStop SQL/MP returns an error specifying that no indicator variable was 
provided rather than the “not-found” condition. A WHENEVER NOT FOUND directive 
does not detect this condition.
Example 9-2. Enabling and Disabling the WHENEVER Directive
EXEC SQL WHENEVER SQLERROR CALL :error_handler;
void fred(short i, short j, short k)
{
 EXEC SQL SELECT ...;
 EXEC SQL SELECT ...;
 EXEC SQL SELECT ...;
}
void ginger(short i, short j, short k)
{
 EXEC SQL SELECT ...;
 EXEC SQL SELECT ...;
 EXEC SQL SELECT ...;
}
/* reset SQLERROR checking while in error handler */
EXEC SQL WHENEVER SQLERROR;
void error_handler(void)
{
 EXEC SQL SELECT...;
 EXEC SQL SELECT...;
 EXEC SQL SELECT...;
}
/* enable SQLERROR checking */
EXEC SQL WHENEVER SQLERROR CALL :error_handler;
int main(void)
{
 fred();
 ginger();
 EXEC SQL INSERT...;
}










