⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 proc1.pc

📁 本程序是用proC编写的程序
💻 PC
字号:
#include <stdio.h>
typedef char mystr[20];

int connect();
int error_proc();


EXEC SQL BEGIN DECLARE SECTION;
	EXEC SQL TYPE mystr IS STRING(20);
	
	mystr username;
	mystr password;
	
	mystr colname;
	mystr coltype;
	
	int empno;
	mystr ename;
	mystr job;
	int mgr;
	mystr hireDate;
	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 col_cursor CURSOR FOR SELECT CNAME,COLTYPE FROM COL WHERE TNAME='EMP';

		EXEC SQL DECLARE emp_cursor CURSOR FOR SELECT EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO FROM EMP;
		
		
		EXEC SQL OPEN col_cursor;
		
		for(;;i++){
			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;
		

		
		printf("\n******************************************************************************\n");
		
				
		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("%-17d%-17s%-17s%-17s%-17s%-17.2f%-17s%-17d\n",empno,ename,job,"NULL",hireDate,sal,"NULL",deptno);
					printf("----------------------------------------------------------------------------\n");
				}
				else{
					printf("%-17d%-17s%-17s%-17d%-17s%-17.2f%-17s%-17d\n",empno,ename,job,mgr,hireDate,sal,"NULL",deptno);
					printf("----------------------------------------------------------------------------\n");
				}
			}
			else{
				if(ind_mgr < 0){
					printf("%-17d%-17s%-17s%-17s%-17s%-17.2f%-17.2f%-17d\n",empno,ename,job,"NULL",hireDate,sal,comm,deptno);
					printf("----------------------------------------------------------------------------\n");
				}
				else{
					printf("%-17d%-17s%-17s%-17d%-17s%-17.2f%-17.2f%-17d\n",empno,ename,job,mgr,hireDate,sal,comm,deptno);
					printf("----------------------------------------------------------------------------\n");
				}
				
			}
		}
		EXEC SQL WHENEVER NOT FOUND DO continue;
		EXEC SQL CLOSE emp_cursor;	
		
}

int connect(){
    EXEC SQL WHENEVER SQLERROR GOTO error_msg;
    //真正起连接做用的是下面这一句
    EXEC SQL CONNECT :username IDENTIFIED BY :password;
    printf("Connect successed!\n");
    return 0;
error_msg:
    printf("Connect failed\n");
    return -1;
};

int error_proc(){
	printf("Error Occured\n");
	exit(-1);
};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -