由于以后的工作需要用到,所以从现在开始学习Pro C
下面是一个简单的示例程序:
#include
.
.
.EXEC SQL INCLUDE sqlca;
EXEC ORACLE OPTION (RELEASE_CURSOR = YES);
EXEC SQL BEGIN DECLARE SECTION;
varchar vc_user[20];
long al_empno = 0;
char ac_ename[11] = "";
char ac_hiredate[20] = "";
double af_sal = 0;
EXEC SQL VAR ac_ename IS STRING(11);
EXEC SQL VAR ac_hiredate IS STRING(20);
EXEC SQL END DECLARE SECTION;
//错误处理函数
void sql_error(char *msg)
{
printf("\n%s,%ld,%s\n", msg, sqlca.sqlcode, (char *)sqlca.sqlerrm.sqlerrmc);
EXEC SQL ROLLBACK RELEASE;
exit(-1);
}
void main()
{
EXE SQL WHENEVER SQLERROR DO sql_error("ORACLE ERROR");
//连接数据库
strcpy(vc_user.arr, "scott/tiger@DEMO");
vc_user.len = 16;
EXEC SQL CONNECT :vc_user;
EXEC SQL DECLARE cur_emp CURSOR FOR
SELECT EMPNO, ENAME, to_char(HIREDATE, 'YYYY/MM/DD HH24:MI:SS');
EXEC SQL OPEN cur_emp;
while(1)
{
al_empno = 0;
al_empno=0;
strcpy(ac_ename,"");
strcpy(ac_hiredate,"");
af_sal=0;
EXEC SQL FETCH cur_emp
INTO :al_empno, :ac_ename:ename_ind, :ac_hiredate:hiredate_ind, :af_sal:sal_ind;
if(sqlca.sqlcode == 1403)
{
break;
}
printf("empno=%ld,ename=%s,hiredate=%s,sal=%lf\n",al_empno,ac_ename,ac_hiredate,af_sal);
}
EXEC SQL CLOSE cur_emp;
EXESQL ROLLBACK WORK RELEASE;//在PROC程序中,要记住用EXEC SQL ROLLBACK WORK RELEASE;断开与数据库的连接,并释放相关的数据库资源
}
2011年5月20日星期五
Pro C 学习
订阅:
博文评论 (Atom)
没有评论:
发表评论