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

📄 pbserver.c

📁 tuxede下面的编程
💻 C
📖 第 1 页 / 共 5 页
字号:
			(void)userlog("tpopen failed, tperrno: %d\n",tperrno);
		}
		argv = argv; argc = argc;	
		return(-1);
	}
	userlog("tpopen() ok******************\n");
	return 0;
}

void
tpsvrdone()
{

	if (tpclose() == -1) {
		(void)userlog("tpsrvdone: failed to close database due to ");
		switch (tperrno) {
		case TPEOS:
			//(void)userlog("tpclose failed, Unix error %d\n", Uunixerr);
			break;
		case TPERELEASE:
			(void)userlog("tpclose failed, Incompatible release\n");
			break;
		default:
			(void)userlog("tpclose failed, tperrno:  %d\n",tperrno);
		}
	}
	userlog("tpdone() ok******************\n");
}






/*EMP_SEL SERVICES*/
EMP_SEL(TPSVCINFO *rqst)
{
	FBFR32 *rcvbuf=NULL;
	FBFR32 *sendbuf=NULL;
	FLDLEN32 len=0;
	int i=0;
	int ret=0;
	int iOc=0;


	/*分配返回缓冲区并初始化*/
	sendbuf = IniSendBuf(20480);
	if(sendbuf==NULL)
	{
		tpreturn( TPFAIL, 0, (char *)sendbuf, 0, 0 );
	}
	
	/*从EMP表中取数据*/
	/* EXEC SQL DECLARE cur_emp_select CURSOR FOR 
		SELECT EMPNO, ENAME,JOB,MGR,to_char(HIREDATE,'yyyy/mm/dd hh24:mi:ss'),SAL,COMM,DEPTNO FROM EMP; */ 

	if(sqlca.sqlcode!=0)
	{ 
		tux_return(sendbuf,"DECLARE CURSOR:cur_emp_select出错",sqlca.sqlcode,(char *)sqlca.sqlerrm.sqlerrmc);
	}

	/* EXEC SQL OPEN cur_emp_select; */ 

{
 struct sqlexd sqlstm;

 sqlstm.sqlvsn = 10;
 sqlstm.arrsiz = 0;
 sqlstm.sqladtp = &sqladt;
 sqlstm.sqltdsp = &sqltds;
 sqlstm.stmt = sq0001;
 sqlstm.iters = (unsigned int  )1;
 sqlstm.offset = (unsigned int  )5;
 sqlstm.selerr = (unsigned short)1;
 sqlstm.cud = sqlcud0;
 sqlstm.sqlest = (unsigned char  *)&sqlca;
 sqlstm.sqlety = (unsigned short)256;
 sqlstm.occurs = (unsigned int  )0;
 sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
}


	if(sqlca.sqlcode!=0)
	{
		/* EXEC SQL CLOSE cur_emp_select; */ 

{
  struct sqlexd sqlstm;

  sqlstm.sqlvsn = 10;
  sqlstm.arrsiz = 0;
  sqlstm.sqladtp = &sqladt;
  sqlstm.sqltdsp = &sqltds;
  sqlstm.iters = (unsigned int  )1;
  sqlstm.offset = (unsigned int  )20;
  sqlstm.cud = sqlcud0;
  sqlstm.sqlest = (unsigned char  *)&sqlca;
  sqlstm.sqlety = (unsigned short)256;
  sqlstm.occurs = (unsigned int  )0;
  sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
}


		tux_return(sendbuf,"OPEN CURSOR:cur_emp_select出错",sqlca.sqlcode,(char *)sqlca.sqlerrm.sqlerrmc);
	}
	i = 0;
	while(1)
	{
		al_empno=0;
		strcpy(ac_ename,"");
		strcpy(ac_job,"");
		al_mgr=0;
		strcpy(ac_hiredate,"");
		af_sal=0;
		af_comm=0;
		al_deptno=0;
		/*EXEC SQL FETCH authors INTO :al_empno :ind_empno, :ac_ename :ind_ename,:ac_job :ind_job,:al_mgr :ind_mgr,:ac_hiredate :ind_hiredate,:af_sal :ind_sal,:af_comm :ind_comm,:al_deptno :ind_deptno;
		*/
		/* EXEC SQL FETCH cur_emp_select INTO :al_empno, :ac_ename,:ac_job,:al_mgr,:ac_hiredate,:af_sal,:af_comm,:al_deptno; */ 

{
  struct sqlexd sqlstm;

  sqlstm.sqlvsn = 10;
  sqlstm.arrsiz = 8;
  sqlstm.sqladtp = &sqladt;
  sqlstm.sqltdsp = &sqltds;
  sqlstm.iters = (unsigned int  )1;
  sqlstm.offset = (unsigned int  )35;
  sqlstm.cud = sqlcud0;
  sqlstm.sqlest = (unsigned char  *)&sqlca;
  sqlstm.sqlety = (unsigned short)256;
  sqlstm.occurs = (unsigned int  )0;
  sqlstm.sqhstv[0] = (         void  *)&al_empno;
  sqlstm.sqhstl[0] = (unsigned int  )4;
  sqlstm.sqhsts[0] = (         int  )0;
  sqlstm.sqindv[0] = (         void  *)0;
  sqlstm.sqinds[0] = (         int  )0;
  sqlstm.sqharm[0] = (unsigned int  )0;
  sqlstm.sqadto[0] = (unsigned short )0;
  sqlstm.sqtdso[0] = (unsigned short )0;
  sqlstm.sqhstv[1] = (         void  *)ac_ename;
  sqlstm.sqhstl[1] = (unsigned int  )11;
  sqlstm.sqhsts[1] = (         int  )0;
  sqlstm.sqindv[1] = (         void  *)0;
  sqlstm.sqinds[1] = (         int  )0;
  sqlstm.sqharm[1] = (unsigned int  )0;
  sqlstm.sqadto[1] = (unsigned short )0;
  sqlstm.sqtdso[1] = (unsigned short )0;
  sqlstm.sqhstv[2] = (         void  *)ac_job;
  sqlstm.sqhstl[2] = (unsigned int  )11;
  sqlstm.sqhsts[2] = (         int  )0;
  sqlstm.sqindv[2] = (         void  *)0;
  sqlstm.sqinds[2] = (         int  )0;
  sqlstm.sqharm[2] = (unsigned int  )0;
  sqlstm.sqadto[2] = (unsigned short )0;
  sqlstm.sqtdso[2] = (unsigned short )0;
  sqlstm.sqhstv[3] = (         void  *)&al_mgr;
  sqlstm.sqhstl[3] = (unsigned int  )4;
  sqlstm.sqhsts[3] = (         int  )0;
  sqlstm.sqindv[3] = (         void  *)0;
  sqlstm.sqinds[3] = (         int  )0;
  sqlstm.sqharm[3] = (unsigned int  )0;
  sqlstm.sqadto[3] = (unsigned short )0;
  sqlstm.sqtdso[3] = (unsigned short )0;
  sqlstm.sqhstv[4] = (         void  *)ac_hiredate;
  sqlstm.sqhstl[4] = (unsigned int  )11;
  sqlstm.sqhsts[4] = (         int  )0;
  sqlstm.sqindv[4] = (         void  *)0;
  sqlstm.sqinds[4] = (         int  )0;
  sqlstm.sqharm[4] = (unsigned int  )0;
  sqlstm.sqadto[4] = (unsigned short )0;
  sqlstm.sqtdso[4] = (unsigned short )0;
  sqlstm.sqhstv[5] = (         void  *)&af_sal;
  sqlstm.sqhstl[5] = (unsigned int  )8;
  sqlstm.sqhsts[5] = (         int  )0;
  sqlstm.sqindv[5] = (         void  *)0;
  sqlstm.sqinds[5] = (         int  )0;
  sqlstm.sqharm[5] = (unsigned int  )0;
  sqlstm.sqadto[5] = (unsigned short )0;
  sqlstm.sqtdso[5] = (unsigned short )0;
  sqlstm.sqhstv[6] = (         void  *)&af_comm;
  sqlstm.sqhstl[6] = (unsigned int  )8;
  sqlstm.sqhsts[6] = (         int  )0;
  sqlstm.sqindv[6] = (         void  *)0;
  sqlstm.sqinds[6] = (         int  )0;
  sqlstm.sqharm[6] = (unsigned int  )0;
  sqlstm.sqadto[6] = (unsigned short )0;
  sqlstm.sqtdso[6] = (unsigned short )0;
  sqlstm.sqhstv[7] = (         void  *)&al_deptno;
  sqlstm.sqhstl[7] = (unsigned int  )4;
  sqlstm.sqhsts[7] = (         int  )0;
  sqlstm.sqindv[7] = (         void  *)0;
  sqlstm.sqinds[7] = (         int  )0;
  sqlstm.sqharm[7] = (unsigned int  )0;
  sqlstm.sqadto[7] = (unsigned short )0;
  sqlstm.sqtdso[7] = (unsigned short )0;
  sqlstm.sqphsv = sqlstm.sqhstv;
  sqlstm.sqphsl = sqlstm.sqhstl;
  sqlstm.sqphss = sqlstm.sqhsts;
  sqlstm.sqpind = sqlstm.sqindv;
  sqlstm.sqpins = sqlstm.sqinds;
  sqlstm.sqparm = sqlstm.sqharm;
  sqlstm.sqparc = sqlstm.sqharc;
  sqlstm.sqpadto = sqlstm.sqadto;
  sqlstm.sqptdso = sqlstm.sqtdso;
  sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
}


		if( sqlca.sqlcode  == SQLNOTFOUND)
		{
			break;
		}
		/*当取出的值是null时,sqlca.sqlcode = -1405*/
		if ((sqlca.sqlcode != 0)&&(sqlca.sqlcode!= SQLNULL))
		{  	
			/*FETCH CURSOR失败 */
			/* EXEC SQL CLOSE cur_emp_select; */ 

{
   struct sqlexd sqlstm;

   sqlstm.sqlvsn = 10;
   sqlstm.arrsiz = 8;
   sqlstm.sqladtp = &sqladt;
   sqlstm.sqltdsp = &sqltds;
   sqlstm.iters = (unsigned int  )1;
   sqlstm.offset = (unsigned int  )82;
   sqlstm.cud = sqlcud0;
   sqlstm.sqlest = (unsigned char  *)&sqlca;
   sqlstm.sqlety = (unsigned short)256;
   sqlstm.occurs = (unsigned int  )0;
   sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
}


			tux_return(sendbuf,"FETCH CURSOR 出错",sqlca.sqlcode,(char *)sqlca.sqlerrm.sqlerrmc);
		}	
		/*对null的处理有两种分法1,采用指示器变量,2,在FETCH之前,给变量赋初直,并处理sqlca.sqlcode = -1405的情况
		采用指示器变量时,取出的值是null时,sqlca.sqlcode 也不会等于 -1405
		如果取出的是null,字符新型则使它等于空串,数字型的使它为0
		if(ind_empno == -1) al_empno=0;
		if(ind_ename == -1) strcpy(ac_ename,"");
		if(ind_job == -1) strcpy(ac_job,"");
		if(ind_mgr == -1) al_mgr = 0;
		if(ind_hiredate == -1) strcpy(ac_hiredate,"");
		if(ind_sal == -1) af_sal =0;
		if(ind_comm == -1) af_comm = 0;
		if(ind_deptno == -1) al_deptno=0;
		*/
#ifdef _DEBUG_
		 userlog("FETCHED ROW:%d\t%s\t%s\t%d\t%s\t%f\t%f\t%d\n",al_empno,ac_ename,ac_job,al_mgr,ac_hiredate,af_sal,af_comm,al_deptno);
#endif
		 
		len = sizeof(al_empno);
		if(Fchg32( sendbuf, EMPNO, i, (char *)&al_empno, (FLDLEN32)len )<0)
		{
			/* EXEC SQL CLOSE cur_emp_select; */ 

{
   struct sqlexd sqlstm;

   sqlstm.sqlvsn = 10;
   sqlstm.arrsiz = 8;
   sqlstm.sqladtp = &sqladt;
   sqlstm.sqltdsp = &sqltds;
   sqlstm.iters = (unsigned int  )1;
   sqlstm.offset = (unsigned int  )97;
   sqlstm.cud = sqlcud0;
   sqlstm.sqlest = (unsigned char  *)&sqlca;
   sqlstm.sqlety = (unsigned short)256;
   sqlstm.occurs = (unsigned int  )0;
   sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
}


			tux_return(sendbuf,"Fchg32(EMPNO) 出错",0,(char *)Fstrerror32(Ferror32));
		}
		len = sizeof(ac_ename);
		if(Fchg32( sendbuf, ENAME, i, ac_ename,len )<0)
		{
			/* EXEC SQL CLOSE cur_emp_select; */ 

{
   struct sqlexd sqlstm;

   sqlstm.sqlvsn = 10;
   sqlstm.arrsiz = 8;
   sqlstm.sqladtp = &sqladt;
   sqlstm.sqltdsp = &sqltds;
   sqlstm.iters = (unsigned int  )1;
   sqlstm.offset = (unsigned int  )112;
   sqlstm.cud = sqlcud0;
   sqlstm.sqlest = (unsigned char  *)&sqlca;
   sqlstm.sqlety = (unsigned short)256;
   sqlstm.occurs = (unsigned int  )0;
   sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
}


			tux_return(sendbuf,"Fchg32(ENAME) 出错",0,(char *)Fstrerror32(Ferror32));
		}
		
		len = sizeof(ac_job);
		if(Fchg32( sendbuf, JOB, i, ac_job,len )<0)
		{
			/* EXEC SQL CLOSE cur_emp_select; */ 

{
   struct sqlexd sqlstm;

   sqlstm.sqlvsn = 10;
   sqlstm.arrsiz = 8;
   sqlstm.sqladtp = &sqladt;
   sqlstm.sqltdsp = &sqltds;
   sqlstm.iters = (unsigned int  )1;
   sqlstm.offset = (unsigned int  )127;
   sqlstm.cud = sqlcud0;
   sqlstm.sqlest = (unsigned char  *)&sqlca;
   sqlstm.sqlety = (unsigned short)256;
   sqlstm.occurs = (unsigned int  )0;
   sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
}


			tux_return(sendbuf,"Fchg32(JOB) 出错",0,(char *)Fstrerror32(Ferror32));
		}
		
		len = sizeof(al_mgr);
		if(Fchg32( sendbuf, MGR, i, (char*)&al_mgr,len )<0)
		{
			/* EXEC SQL CLOSE cur_emp_select; */ 

{
   struct sqlexd sqlstm;

   sqlstm.sqlvsn = 10;
   sqlstm.arrsiz = 8;
   sqlstm.sqladtp = &sqladt;
   sqlstm.sqltdsp = &sqltds;
   sqlstm.iters = (unsigned int  )1;
   sqlstm.offset = (unsigned int  )142;
   sqlstm.cud = sqlcud0;
   sqlstm.sqlest = (unsigned char  *)&sqlca;
   sqlstm.sqlety = (unsigned short)256;
   sqlstm.occurs = (unsigned int  )0;
   sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
}


			tux_return(sendbuf,"Fchg32(MGR) 出错",0,(char *)Fstrerror32(Ferror32));
		}
		
		len = sizeof(ac_hiredate);
		if(Fchg32( sendbuf, HIREDATE, i, ac_hiredate,len )<0)
		{
			/* EXEC SQL CLOSE cur_emp_select; */ 

{
   struct sqlexd sqlstm;

   sqlstm.sqlvsn = 10;
   sqlstm.arrsiz = 8;
   sqlstm.sqladtp = &sqladt;
   sqlstm.sqltdsp = &sqltds;
   sqlstm.iters = (unsigned int  )1;
   sqlstm.offset = (unsigned int  )157;
   sqlstm.cud = sqlcud0;
   sqlstm.sqlest = (unsigned char  *)&sqlca;
   sqlstm.sqlety = (unsigned short)256;
   sqlstm.occurs = (unsigned int  )0;
   sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
}


			tux_return(sendbuf,"Fchg32(HIREDATE) 出错",0,(char *)Fstrerror32(Ferror32));
		}
		
		len=sizeof(af_sal);
		if(Fchg32( sendbuf, SAL, i, (char *)&af_sal, len )<0)
		{
			/* EXEC SQL CLOSE cur_emp_select; */ 

{
   struct sqlexd sqlstm;

   sqlstm.sqlvsn = 10;
   sqlstm.arrsiz = 8;
   sqlstm.sqladtp = &sqladt;
   sqlstm.sqltdsp = &sqltds;
   sqlstm.iters = (unsigned int  )1;
   sqlstm.offset = (unsigned int  )172;
   sqlstm.cud = sqlcud0;
   sqlstm.sqlest = (unsigned char  *)&sqlca;
   sqlstm.sqlety = (unsigned short)256;
   sqlstm.occurs = (unsigned int  )0;
   sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
}


			tux_return(sendbuf,"Fchg32(SAL) 出错",0,(char *)Fstrerror32(Ferror32));
		}
		
		len = sizeof(af_comm);
		if(Fchg32( sendbuf, COMM, i, (char*)&af_comm,len )<0)
		{
			/* EXEC SQL CLOSE cur_emp_select; */ 

{
   struct sqlexd sqlstm;

   sqlstm.sqlvsn = 10;
   sqlstm.arrsiz = 8;
   sqlstm.sqladtp = &sqladt;
   sqlstm.sqltdsp = &sqltds;
   sqlstm.iters = (unsigned int  )1;
   sqlstm.offset = (unsigned int  )187;
   sqlstm.cud = sqlcud0;
   sqlstm.sqlest = (unsigned char  *)&sqlca;
   sqlstm.sqlety = (unsigned short)256;
   sqlstm.occurs = (unsigned int  )0;
   sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
}


			tux_return(sendbuf,"Fchg32(COMM) 出错",0,(char *)Fstrerror32(Ferror32));
		}
		
		len = sizeof(al_deptno);
		if(Fchg32( sendbuf, DEPTNO, i, (char *)&al_deptno,len )<0)
		{
			/* EXEC SQL CLOSE cur_emp_select; */ 

{
   struct sqlexd sqlstm;

   sqlstm.sqlvsn = 10;
   sqlstm.arrsiz = 8;
   sqlstm.sqladtp = &sqladt;
   sqlstm.sqltdsp = &sqltds;
   sqlstm.iters = (unsigned int  )1;
   sqlstm.offset = (unsigned int  )202;
   sqlstm.cud = sqlcud0;
   sqlstm.sqlest = (unsigned char  *)&sqlca;
   sqlstm.sqlety = (unsigned short)256;
   sqlstm.occurs = (unsigned int  )0;
   sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
}


			tux_return(sendbuf,"Fchg32(DEPTNO) 出错",0,(char *)Fstrerror32(Ferror32));
		}
		i++;

⌨️ 快捷键说明

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