/*-------------------------------------------------------------------- * Very simple example Pro*C program to connect to more than one * database to do work. * Frank Naude - Sep 2000 *-------------------------------------------------------------------- */ #include #include void sqlerror(); EXEC SQL BEGIN DECLARE SECTION; char *connstr1 = "scott/tiger"; char *connstr2 = "scott/tiger@ORCL"; char db_ename[30]; int db_deptno; EXEC SQL END DECLARE SECTION; void main() { EXEC SQL WHENEVER SQLERROR DO sqlerror(); EXEC SQL WHENEVER SQLWARNING CONTINUE; /* give the database connections unique names */ EXEC SQL DECLARE db1 DATABASE; EXEC SQL DECLARE db2 DATABASE; /* connect to different databases */ EXEC SQL AT db1 CONNECT :connstr1; EXEC SQL AT db2 CONNECT :connstr2; EXEC SQL AT DB1 DECLARE emp_cursor CURSOR FOR SELECT ENAME, DEPTNO FROM EMP; EXEC SQL AT DB1 OPEN emp_cursor; EXEC SQL WHENEVER NOT FOUND DO break; for (;;) { EXEC SQL AT DB1 FETCH emp_cursor INTO :db_ename, :db_deptno; printf("\t%s\t%i\n", db_ename, db_deptno); } EXEC SQL AT DB1 CLOSE emp_cursor; /* logoff from both databases */ EXEC SQL AT DB1 COMMIT WORK RELEASE; EXEC SQL AT DB1 COMMIT WORK RELEASE; return; } void sqlerror() { printf("Stop Error:\t%25i\n", sqlca.sqlcode); EXEC SQL WHENEVER SQLERROR CONTINUE; EXEC SQL AT DB1 ROLLBACK WORK RELEASE; EXEC SQL AT DB2 ROLLBACK WORK RELEASE; return; }