diff options
Diffstat (limited to 'src/interfaces/ecpg/test/test1.c')
-rw-r--r-- | src/interfaces/ecpg/test/test1.c | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/src/interfaces/ecpg/test/test1.c b/src/interfaces/ecpg/test/test1.c new file mode 100644 index 00000000000..68d9dd53981 --- /dev/null +++ b/src/interfaces/ecpg/test/test1.c @@ -0,0 +1,60 @@ +exec sql begin declare section; +VARCHAR uid[200 /* VARSIZE */]; +varchar name[200]; +short value; +exec sql end declare section; + +exec sql include sqlca; + +#define DBCP(x,y) strcpy(x.arr,y);x.len = strlen(x.arr) +#define LENFIX(x) x.len=strlen(x.arr) +#define STRFIX(x) x.arr[x.len]='\0' +#define SQLCODE sqlca.sqlcode + +void +db_error (char *msg) +{ + sqlca.sqlerrm.sqlerrmc[sqlca.sqlerrm.sqlerrml] = '\0'; + printf ("%s: db error %s\n", msg, sqlca.sqlerrm.sqlerrmc); + exit (1); +} + +int +main () +{ + strcpy (uid.arr, "test/test"); + LENFIX (uid); + + exec sql connect 'kom'; + if (SQLCODE) + db_error ("connect"); + + strcpy (name.arr, "opt1"); + LENFIX (name); + + exec sql declare cur cursor for + select name, value from pace_test; + if (SQLCODE) db_error ("declare"); + + exec sql open cur; + if (SQLCODE) + db_error ("open"); + + while (1) { + exec sql fetch in cur into :name, :value; + if (SQLCODE) + break; + STRFIX (name); + printf ("%s\t%d\n", name.arr, value); + } + + if (SQLCODE < 0) + db_error ("fetch"); + + exec sql close cur; + if (SQLCODE) db_error ("close"); + exec sql commit; + if (SQLCODE) db_error ("commit"); + + return (0); +} |