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

📄 main.pc

📁 linux下访问ORACLE数据库的简单程序
💻 PC
字号:
#include <stdio.h> 
#include <string.h> 
#include <stdlib.h> 
#include <sqlda.h> 
#include <sqlcpr.h> 
 
 
EXEC SQL INCLUDE sqlca; 
/*RELEASE_CURSOR=YES 使PROC 在执行完后释放与嵌入SQL有关资源*/ 
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); 
} 
 
 
main() 
{  
	EXEC 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'),SAL FROM EMP; 
	 
/*	EXEC SQL OPEN cur_emp; 
	while(1) 
	{ 
		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; 
*/	EXEC SQL ROLLBACK WORK RELEASE; 
} 

⌨️ 快捷键说明

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