17,377
社区成员
发帖
与我相关
我的任务
分享
EXEC SQL BEGIN DECLARE SECTION;
EXEC SQL TYPE mystr IS STRING(20);
mystr username[20];
mystr password[20];
mystr colname[20];
mystr coltype[20];
EXEC SQL END DECLARE SECTION;
exec sql include sqlca;
int main(){
int i = 0;
EXEC SQL WHENEVER SQLERROR DO error_proc();
strcpy(username,"SCOTT");
strcpy(password,"scott");
if(connect() != 0){
exit(-1);//若数据库连接失败,则直接退出程序
}
EXEC SQL DECLARE col_cursor CURSOR FOR SELECT CNAME,COLTYPE FROM COL WHERE TNAME='EMP';
EXEC SQL OPEN col_cursor;
for(;;){
EXEC SQL WHENEVER NOT FOUND DO break;
EXEC SQL FETCH col_cursor INTO :colname,:coltype;
printf("%s %s",colname,coltype);
}
EXEC SQL WHENEVER NOT FOUND DO continue;
EXEC SQL CLOSE col_cursor;
}
EXEC SQL BEGIN DECLARE SECTION;
EXEC SQL TYPE mystr IS STRING(20);
mystr username[20];
mystr password[20];
int empno;
mystr ename[20];
mystr job[20];
int mgr;
mystr hireDate[20];
float sal;
float comm;
int deptno;
short ind_comm;
short ind_mgr;
EXEC SQL END DECLARE SECTION;
exec sql include sqlca;
int main(){
int i = 0;
EXEC SQL WHENEVER SQLERROR DO error_proc();
strcpy(username,"SCOTT");
strcpy(password,"scott");
if(connect() != 0){
exit(-1);//若数据库连接失败,则直接退出程序
}
EXEC SQL DECLARE emp_cursor CURSOR FOR SELECT EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO FROM EMP;
EXEC SQL OPEN emp_cursor;
for(;;){
EXEC SQL WHENEVER NOT FOUND DO break;
EXEC SQL FETCH emp_cursor INTO :empno,:ename,:job,:mgr INDICATOR:ind_mgr,:hireDate,:sal,:comm INDICATOR :ind_comm,:deptno;
if(ind_comm < 0){
if(ind_mgr < 0){
printf("%-11d%-11s%-11s%-11s%-11s%-11.2f%-11s%-11d\n",empno,ename,job,"NULL",hireDate,sal,"NULL",deptno);
}
else{
printf("%-11d%-11s%-11s%-11d%-11s%-11.2f%-11s%-11d\n",empno,ename,job,mgr,hireDate,sal,"NULL",deptno);
}
}
else{
if(ind_mgr < 0){
printf("%-11d%-11s%-11s%-11s%-11s%-11.2f%-11.2f%-11d\n",empno,ename,job,"NULL",hireDate,sal,comm,deptno);
}
else{
printf("%-11d%-11s%-11s%-11d%-11s%-11.2f%-11.2f%-11d\n",empno,ename,job,mgr,hireDate,sal,comm,deptno);
}
}
}
EXEC SQL WHENEVER NOT FOUND DO continue;
EXEC SQL CLOSE emp_cursor;
}
--第一段中:
exit(-1);//若数据库连接失败,则直接退出程序
}
EXEC SQL DECLARE col_cursor CURSOR FOR SELECT CNAME,COLTYPE FROM COL WHERE TNAME='EMP';
EXEC SQL OPEN col_cursor;
--改为:
exit(-1);//若数据库连接失败,则直接退出程序
}
EXEC SQL DECLARE col_cursor CURSOR FOR SELECT EMPNO,ENAME FROM COL WHERE TNAME='EMP';
EXEC SQL OPEN col_cursor;