#include exec sql include sqlca; #define SQLCODE sqlca.sqlcode extern void ECPGdebug(int n, FILE *dbgs); 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 () { exec sql begin declare section; varchar name[8]; long born; exec sql end declare section; FILE *dbgs; if ((dbgs = fopen("log", "w")) != NULL) ECPGdebug(1, dbgs); exec sql connect 'mm'; if (SQLCODE) db_error ("connect"); exec sql declare cur cursor for select name, born from meskes; if (SQLCODE) db_error ("declare"); exec sql open cur; if (SQLCODE) db_error ("open"); while (1) { exec sql fetch in cur into :name, :born; if (SQLCODE) break; printf ("%8.8s was born %d\n", name.arr, born); } if (SQLCODE < 0) db_error ("fetch"); exec sql close cur; if (SQLCODE) db_error ("close"); exec sql commit; if (SQLCODE) db_error ("commit"); if (dbgs != NULL) fclose(dbgs); return (0); }