SQL/MX Programming Manual for C and COBOL (G06.24+, H06.03+)
C Sample Programs
HP NonStop SQL/MX Programming Manual for C and COBOL—523627-004
A-12
Using SQL Descriptor Areas Without DESCRIBE
Using SQL Descriptor Areas Without DESCRIBE
Example A-5 executes the steps shown in Figure 10-1 on page 10-12 but without the
DESCRIBE statements and without the GET DESCRIPTOR statement (there are no
output parameters). Instead of using DESCRIBE, the values of fields in the descriptor
area are set explicitly by using the SET DESCRIPTOR statement.
Example A-5. Using SQL Descriptor Areas Without DESCRIBE (page1of3)
/* ---------------------------------------------------------
Description: Using Descriptor Areas Without DESCRIBE
Statements: ALLOCATE DESCRIPTOR
UPDATE
PREPARE
SET DESCRIPTOR
EXECUTE
DEALLOCATE PREPARE
DEALLOCATE DESCRIPTOR
WHENEVER
GET DIAGNOSTICS
------------------------------------------------------------ */
#include <stdio.h>
#include <string.h>
EXEC SQL MODULE EXF113M NAMES ARE ISO88591;
void sql_error();
int main()
{
char SQLSTATE_OK[6]="00000";
char SQLSTATE_NODATA[6]="02000";
EXEC SQL BEGIN DECLARE SECTION;
char SQLSTATE[6];
unsigned NUMERIC (4) in_jobcode; /* WHERE values */
VARCHAR in_last_name[21];
VARCHAR hv_sql_stmt[256];
long desc_max;
long desc_value;
long desc_type;
long desc_precision;
long desc_scale;
long desc_length;
EXEC SQL END DECLARE SECTION;
SQLSTATE[5]='\0';
SQLSTATE_OK[5]='\0';
printf("\n\nThis example uses descriptors, no DESCRIBE.\n\n");
EXEC SQL WHENEVER SQLERROR CALL sql_error;