| Sample to create a pro*c file and link with Oracle Library to form a executable |
| Step1 Create a pro*c file, similar to the sample file, rename the text file to .pc (addtwo.txt) Content of addtwo.txt /* Proc for adding two numbers */ #include <stdio.h> #include <string.h> #include <ctype.h> #include <stdlib.h> #include "usrxit.h> #define VARLEN 15 EXEC SQL INCLUDE SQLCA.H EXEC SQL INCLUDE ORACA.H EXEC SQL BEGIN DECLARE SECTION; varchar a1[VARLEN] varchar b1[VARLEN] varchar c1[VARLEN] EXEC SQL END DECLARE SECTION; int addtwo() { EXEC IAF GET userexblk.a, userexblk.b into :a1, :b1; a1.len = strlen((char *) a1.arr); b1.len = strlen((char *) b1.arr); a1.arr[a1.len] = '\0'; b1.arr[b1.len] = '\0'; strcat(c1, a1); strcat(c1, b1); c1.len = strlen((char *) c1.arr); c1.arr[c1.len] = '\0'; EXEC IAF PUT userexblk.c values (:c1); return (0); } |
| Step 2 Create header files ue.h, ue_samp.h, usrxit.h Content of ue.h #ifndef UE #define UE #define MAX_ERRBUF_SIZE 256 extern char SRWERB[ ]; struct exitr { char *addtwo; ---------> your proc file int (*exfp) (/* _char* _*/); int extyp; #define XITCC1 1 #define XITCC 2 #define XITCOB 3 #define XITFOR 4 #define XITPLI 5 #define XITPAS 6 #define XITADA 7 }; #define FATAL_ERR 535 #define FAILURE 1403 #define SUCCESS 0 typedef struct exitr exitr; extern exitr iapxtb[ ]; #endif Content of ue_samp.h int addtwo(): |