Please Help with small program
I am having alot of trouble getting my code to read the first 4 lines of this database table and print the results to the screen. Can someone please help me make proper corrections to my code. My sql statement is failing and I am very confused. There is some error handling functions in here which I can get thru but my main problen is passing the records thru an array of structures and printing those results to the screen. I would like to read the entire table instead of just 4 rows but I am thinking that will take longer. Thanks.
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 structure to hold database table record */
struct cc_lkup_ {
short cc;
char cc_suf[2];
char cc_sn[11];
char cc_desc[41];
short prd_rpt_id;
short rpt_cc;
char sfdc_grp[41];
char cc_grp[41];
char proc_grp[3];
char proc_grp_desc[16];
short cc_typ;
char resp_company[4];
char rpt_tbl[33];
} cc_lkup_;
main ()
{
int reccnt = 0;
JNL_STRUCT jnl;
/*Zero out structure - Initialize*/
memset (&cc_lkup_, 0, sizeof(cc_lkup_));
/* Get records from database table psr_skid_mkup
EXEC SQL SELECT cc, cc_sn, cc_desc, cc_grp
INTO :cc, :cc_sn, :cc_desc, :cc_grp
FROM cc_lkup */
/* 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);
if (status != IMCS_DB_SUCCESS) return status;
/* PRINT TO SCREEN */
int i;
for( i = 0; i < 4; i++ )
{
printf("COST CENTER NUMBER:%d LOCATION:%s DESCRIPTION:%s GROUP NUMBER:%s\n", cc_lkup_[i].cc, cc_lkup_[i].cc_sn, cc_lkup_[i].cc_desc, cc_lkup_[i].cc_grp);
}
}
Please ignore psr_skid_mkup
Yes - You are right as usual - Sorry about that
I removed the INTO and made a few other changes. The code is below. I inserted SQL BEGIN and SQL END. I believe that and removing INTO will allow me to read all the records instead of just one. I then need to send all the records to my structure (cc_lkup) and print them to the screen. Thanks in advance for any help. I know my problem is with the aray and selecting all the records but I am trying very hard to understand this.
Code:
/*Define structure to hold database table record */
struct cc_lkup_ {
short cc;
char cc_suf[2];
char cc_sn[11];
char cc_desc[41];
short prd_rpt_id;
short rpt_cc;
char sfdc_grp[41];
char cc_grp[41];
char proc_grp[3];
char proc_grp_desc[16];
short cc_typ;
char resp_company[4];
char rpt_tbl[33];
} cc_lkup_;
int main ()
{
int reccnt = 0;
int totalcount = 0;
JNL_STRUCT jnl;
/*Zero out structure - Initialize*/
memset (&cc_lkup_, 0, sizeof(cc_lkup_));
/*Determine how many records are in the table
EXEC SQL SELECT COUNT(*) INTO :count:nind
FROM cc_lkup*/
/* 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 COUNTING RECORDS*/
if (status != IMCS_DB_SUCCESS)
exit(1);
/*PLACE TOTAL NUMBER OF RECORDS FOUND IN TOTALCOUNT VARIABLE*/
totalcount = count;
/*WRITE PURPOSE OF CODE TO THE LOG FILE*/
jnl.blk = 1899;
sprintf(stmt_purpose,"counting all records in cc_lkup by Carl J");
log_it(log_file, jnl);
/* Get records from database table psr_skid_mkup
EXEC SQL SELECT cc, cc_sn, cc_desc, cc_grp
INTO :cc, :cc_sn, :cc_desc, :cc_grp
FROM cc_lkup */
/* 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 */
int i;
/*READ ALL RECORDS FOUND IN TABLE - TOTAL IS STORED IN variable COUNT*/
for( i = 0; i < totalcount; i++ )
{
printf("COST CENTER NUMBER:%d LOCATION:%s DESCRIPTION:%s GROUP NUMBER:%s\n", cc_lkup_[i].cc, cc_lkup_[i].cc_sn, cc_lkup_[i].cc_desc, cc_lkup_[i].cc_grp);
}
return (0);
}
Updated code below - Need to slow down
Code:
/*Define structure to hold database table record */
struct cc_lkup_ {
short cc;
char cc_suf[2];
char cc_sn[11];
char cc_desc[41];
short prd_rpt_id;
short rpt_cc;
char sfdc_grp[41];
char cc_grp[41];
char proc_grp[3];
char proc_grp_desc[16];
short cc_typ;
char resp_company[4];
char rpt_tbl[33];
} cc_lkup_;
int main ()
{
int reccnt = 0;
int totalcount = 0;
JNL_STRUCT jnl;
/*Zero out structure - Initialize*/
memset (&cc_lkup_, 0, sizeof(cc_lkup_));
/*Determine how many records are in the table
EXEC SQL SELECT COUNT(*) INTO :count:nind
FROM cc_lkup*/
/* 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 COUNTING RECORDS*/
if (status != IMCS_DB_SUCCESS)
exit(1);
/*PLACE TOTAL NUMBER OF RECORDS FOUND IN TOTALCOUNT VARIABLE*/
totalcount = count;
/*WRITE PURPOSE OF CODE TO THE LOG FILE*/
jnl.blk = 1899;
sprintf(stmt_purpose,"counting all records in cc_lkup by Carl J");
log_it(log_file, jnl);
/* Get records from database table psr_skid_mkup
EXEC SQL SELECT cc, cc_sn, cc_desc, cc_grp
????? :cc, :cc_sn, :cc_desc, :cc_grp
FROM cc_lkup
SQL BEGIN;
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 */
int i;
/*READ ALL RECORDS FOUND IN TABLE - TOTAL IS STORED IN variable COUNT*/
for( i = 0; i < totalcount; i++ )
{
printf("COST CENTER NUMBER:%d LOCATION:%s DESCRIPTION:%s GROUP NUMBER:%s\n", cc_lkup_[i].cc, cc_lkup_[i].cc_sn, cc_lkup_[i].cc_desc, cc_lkup_[i].cc_grp);
}
return (0);
}