/*--------------------------------------------------------------------
* Very simple example Pro*C program to connect to more than one
* database to do work.
* Frank Naude - Sep 2000
*--------------------------------------------------------------------
*/
#include <stdio.h>
#include <sqlca.h>
void sqlerror();
EXEC SQL BEGIN DECLARE SECTION;
char *connstr1 = "scott/tiger";
char *connstr2 = "scothttps://t1.daumcdn.net/cfile/blog/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;
}