Code:
#include <stdio.h>
#include<stdlib.h>
#include<strings.h>
#include<string.h>
#include"imcs_params.h"
#include"jnl_struct.h"
#include"misc.h"
#include"err_supv.h"
#define mysize 500
int init_db();
JNL_STRUCT jnl;
char log_file[] = "stdout";
char db_open='N';
int main (int argc, char **argv)
{
int reccnt = 0;
int y = 0;
int x = 0;
/* open db, set lockmode, and set rollback to transaction level*/
/*INITIALIZE THE DATABASE*/
if (init_db() != 0)
exit(1);
/*Write purpose of code to log*/
jnl.blk = 1991;
sprintf(stmt_purpose,"Initialized the DB by Carl J");
log_it(log_file, jnl);
/*************************************************/
EXEC SQL BEGIN DECLARE SECTION;
EXEC SQL INCLUDE "/imcs/devl/utl/inc/cc_lkup.h";
struct cc_lkup_ cc_lkup2[mysize];
EXEC SQL END DECLARE SECTION;
/************************************************/
/*INITIALIZE - ZERO OUT ARRAY OF STRUCTURES*/
memset (&cc_lkup2, 0, sizeof(cc_lkup2));
/*EXEC SQL DECLARE CURSOR CURSOR1 FOR SELECT cc, cc_sn, cc_desc, cc_grp
FROM cc_lkup ;
EXEC SQL OPEN CURSOR1 ;
EXEC SQL FETCH CURSOR1 INTO :cc, :cc_sn, :cc_desc, :cc_grp ;
EXEC SQL CLOSE CURSOR1 ;*/
/*Get records from database table cc_lkup*/
EXEC SQL SELECT cc, cc_sn, cc_desc, cc_grp
INTO :cc_lkup2[y].cc, :cc_lkup2[y].cc_sn, :cc_lkup2[y].cc_desc, :cc_lkup2[y].cc_grp
FROM cc_lkup;
EXEC SQL BEGIN;
++y;
EXEC SQL END;
/* Verify no errors were encountered during SELECT statement */
status = err_supv(apl_nm, prog_nm, jnl.blk, stmt_purpose, &retry_cnt,
&err_num, err_txt, &row_count, jnl.val1, jnl.val2, popup_flag);
/* EXIT PROGRAM IF ERROR SELECTING RECORDS*/
if (status != IMCS_DB_SUCCESS)
exit(1);
/*WRITE PURPOSE OF CODE TO THE LOG FILE*/
jnl.blk = 1999;
sprintf(stmt_purpose,"selecting all records in the table cc_lkup by Carl J");
log_it(log_file, jnl);
/* PRINT TO SCREEN */
/*READ ALL RECORDS FOUND IN TABLE - TOTAL IS STORED IN variable COUNT*/
for( x = 0; x < row_count; x++ )
{
printf("COST CENTER NUMBER:%d LOCATION:%s DESCRIPTION:%s GROUP NUMBER:%s\n", cc_lkup2[x].cc, cc_lkup2[x].cc_sn, cc_lkup2[x].cc_desc, cc_lkup2[x].cc_grp);
}
return (0);
}
int init_db()
{
if (ssw_opendb("imcsdb") != 0)
{
sprintf(jnl.mesg,"Unable to open database");
log_it(log_file,jnl);
return(1);
}
db_open = 'Y';
strcpy(stmt_purpose,"set lockmode");
EXEC SQL SET LOCKMODE SESSION WHERE READLOCK = NOLOCK, TIMEOUT=30;
status = err_supv(apl_nm, prog_nm, jnl.blk, stmt_purpose, &retry_cnt,
&err_num, err_txt, &row_count, jnl.val1, jnl.val2, popup_flag);
if (status != IMCS_DB_SUCCESS)
{
sprintf(jnl.mesg,"Unable to %s",stmt_purpose);
log_it(log_file,jnl);
return(1);
}
else
EXEC SQL COMMIT;
strcpy(stmt_purpose,"set session to rollback transaction");
EXEC SQL SET SESSION WITH ON_ERROR = ROLLBACK TRANSACTION;
status = err_supv(apl_nm, prog_nm, jnl.blk, stmt_purpose, &retry_cnt,
&err_num, err_txt, &row_count, jnl.val1, jnl.val2, popup_flag);
if (status != IMCS_DB_SUCCESS)
{
sprintf(jnl.mesg,"Unable to %s",stmt_purpose);
log_it(log_file,jnl);
return(1);
}
else
EXEC SQL COMMIT;
return(0);
}