filename: sample1.sqp sample1: proc options(main); /* */ /* This program shows the usage of host-variables, */ /* indicators, and some common SQL statements */ /* The database this program uses is the IBMSAMPL */ /* database that your DB2 product uses. You must be */ /* able to run the IBM DB2 demo sample program in */ /* order to be able to run this program. */ /* */ dcl idx fixed bin(15); dcl errmsg character(200); dcl msg_len fixed bin(15); exec sql include sqlca; exec sql begin declare section; dcl cnt fixed bin(15); dcl projno char(6); dcl projname char(24) varying; dcl deptno char(6); dcl respemp char(6); dcl prstaff float bin(24); dcl prstaff_ind fixed bin(15); dcl prstdate char(10); dcl prstdate_ind fixed bin(15); dcl prendate char(10); dcl prendate_ind fixed bin(15); dcl majproj char(6); dcl majproj_ind fixed bin(15); exec sql end declare section; /* Set up error label for all SQL statements. */ exec sql whenever sqlerror goto err_label; /* Connect to the IBM DB2 sample demo data base */ exec sql connect to IBMSAMPL; /* Determine how many rows are in table project. */ exec SQL SELECT COUNT(*) INTO :cnt from project; put skip edit('Number of rows in table project:', cnt) (a(40),x,f(3,0)); put skip list('All the rows for project are:'); put skip; /* Declare and use a cursor to fetch each row. */ exec sql declare cl cursor for select projno, projname, deptno, respemp, prstaff, prstdate, prendate, majproj from project; exec sql open cl; do idx = 1 to cnt; prstaff = 0; /* re-init */ prstdate = ' '; /* re-init */ prendate = ' '; /* re-init */ majproj = ' '; /* re-init */ exec sql fetch cl into :projno, :projname, :deptno, :respemp, :prstaff :prstaff_ind, :prstdate :prstdate_ind, :prendate :prendate_ind, :majproj :majproj_ind; put edit (projno, projname, deptno, respemp, prstaff, prstdate, prendate, majproj) (a(6),x,a(24),x,a(3),x,a(6),x,f(5,2),x,a(10),x,a(10),x,a(6)); put skip; end; return; err_label: msg_len = sqldb2err(200,0,sqlca,errmsg); put skip list(substr(errmsg,1,msg_len)); end sample1;