NetBase SQL Shadowing Handbook

User Exits NetBase SQL
____________________________________________________________
3-32 QUEST Software, Inc. ver A0195
/* READ THE NUMBER OF COLUMNS FOR THIS TABLE */
memcpy (tableName, header->table_name, 20);
EXEC SQL SELECT NUMC
INTO :numColumns
FROM SYSTEM.TABLE
WHERE NAME = :tableName;
if (sqlca.sqlcode == 100) {
strcpy (msg, "NO ROWS QUALIFIED - SELECT OF SYSTEM.TABLE ");
memcpy (msg+(mlen=strlen(msg)), tableName, 20);
PRINT (msg, -(mlen+20), 0);
return;
}
else
if (sqlca.sqlcode < 0) {
strcpy (msg, "ERROR GETTING NUMBER OF COLUMNS FOR ");
memcpy (msg+(mlen=strlen(msg)), tableName, 20);
PRINT (msg, -(mlen+20), 0);
PRINT (msg, 0, 0);
do { /* Print the error */
EXEC SQL SQLEXPLAIN :SQLMsg;
PRINT (SQLMsg, -strlen(SQLMsg), 0);
} while (sqlca.sqlcode != 0);
return;
}
/* LOOP THROUGH THE COLUMN ARRAY, GETTING THE NAME AND OTHER INFO */
/* THEN PRINTING THE FORMATTED DATA */
PRINT (msg, 0, 0);
for (l = 0, offset = 0; l < header->num_columns; l++) {
if ((col = l + 1) > numColumns) {
sprintf (msg, "COLUMN %d NOT DEFINED", col);
PRINT (msg, -strlen(msg), 0);
continue;
}
uexit_process_data (sqlca, data, &offset, col,
header->column_array[l].column_length, &haveVAR);
} /* end of column array loop */
PRINT (msg, 0, 0);
if (header->record_type == UPDATE) {
strcpy (msg, "UPDATED TO:");
PRINT (msg, -strlen(msg), 0);
PRINT (msg, 0, 0);
for (l = 0, offset = 0; l < header->upd_columns; l++) {
if (header->update_array[l].upd_col_num == 0 &&
header->update_array[l].upd_col_type == 0 &&
header->update_array[l].upd_col_length == 0) {