Yurttas/PL/DBL/oracle/F/03/Bank/Borrower-ins.pc

From ZCubes Wiki
Jump to navigation Jump to search
  1/*
  2REM
  3REM
  4REM borrower-ins.pc
  5REM
  6REM
  7*/
  8
  9#include <stdio.h>
 10#include <sqlca.h>
 11
 12#define UNAME_LEN 32
 13#define PWD_LEN   16
 14
 15VARCHAR username[UNAME_LEN]; /* VARCHAR is an Oracle-supplied struct */
 16VARCHAR password[PWD_LEN];   /* varchar can be in lower case also. */
 17
 18char u_name[UNAME_LEN];
 19char pwd[PWD_LEN];
 20
 21void connect_to_oracle();
 22void sql_error();
 23
 24void main(int argc, char* argv[]) {
 25  connect_to_oracle();
 26
 27  EXEC SQL
 28    WHENEVER SQLERROR DO sql_error("Error in INSERT_table: Borrower");
 29
 30  EXEC SQL
 31    INSERT INTO Borrower 
 32      VALUES ('Downtown', 17, 'Jones', 1000);
 33
 34  EXEC SQL
 35    INSERT INTO Borrower 
 36      VALUES ('Redwood', 23, 'Smith', 2000);
 37
 38  EXEC SQL
 39    INSERT INTO Borrower 
 40      VALUES ('Perryridge', 15, 'Hayes', 1500);
 41
 42  EXEC SQL
 43    INSERT INTO Borrower 
 44      VALUES ('Downtown', 14, 'Jackson', 1500);
 45
 46  EXEC SQL
 47    INSERT INTO Borrower 
 48      VALUES ('Mianus', 93, 'Curry', 500);
 49
 50  EXEC SQL
 51    INSERT INTO Borrower 
 52      VALUES ('Round Hill', 11, 'Turner', 900);
 53
 54  EXEC SQL
 55    INSERT INTO Borrower 
 56      VALUES ('Pownal', 29, 'Williams', 1200);
 57
 58  EXEC SQL
 59    INSERT INTO Borrower 
 60      VALUES ('North Town', 16, 'Adams', 1300);
 61
 62  EXEC SQL
 63    INSERT INTO Borrower 
 64      VALUES ('Downtown', 18, 'Johnson', 2000);
 65
 66  EXEC SQL
 67    INSERT INTO Borrower 
 68      VALUES ('Perryridge', 25, 'Glenn', 2500);
 69
 70  EXEC SQL
 71    INSERT INTO Borrower 
 72      VALUES ('Brighton', 10, 'Brooks', 2200);
 73
 74  EXEC SQL COMMIT WORK RELEASE;
 75
 76  exit(0);
 77}
 78
 79
 80void sql_error(char* msg) {
 81  char err_msg[128];
 82  int  buflen, msglen;
 83
 84  EXEC SQL WHENEVER SQLERROR CONTINUE;
 85
 86  printf("%s \n", msg);
 87  buflen = sizeof(err_msg);
 88  sqlglm(err_msg, &buflen, &msglen);
 89  printf("%.*s \n", msglen, err_msg);
 90  exit(1);
 91}
 92
 93
 94int connect_to_oracle() {
 95  /* substitue your username for "yurttas@oracledatabase" */
 96  strncpy((char *) username.arr, "yurttas@oracledatabase", UNAME_LEN);
 97  username.len = strlen((char *) username.arr);
 98
 99  /* substitue your oracle password for "********" */
100  strncpy((char *) password.arr, "********", PWD_LEN);
101  password.len = strlen((char *) password.arr);
102
103  EXEC SQL WHENEVER SQLERROR DO sql_error ("ORACLE error-- ");
104  EXEC SQL CONNECT :username IDENTIFIED BY :password;
105
106  printf("connected to oracle - \n");
107}