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

📄 pbserver.c

📁 tuxede下面的编程
💻 C
📖 第 1 页 / 共 5 页
字号:
  sqlstm.sqlety = (unsigned short)256;
  sqlstm.occurs = (unsigned int  )0;
  sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
}


		tux_return(sendbuf,"OPEN CURSOR:cur_emp_dept 出错",sqlca.sqlcode,(char *)sqlca.sqlerrm.sqlerrmc);
	}
	i = 0;
	while(1)
	{
		al_deptno=0;
		/* EXEC SQL FETCH cur_emp_dept INTO :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  )590;
  sqlstm.cud = sqlcud0;
  sqlstm.sqlest = (unsigned char  *)&sqlca;
  sqlstm.sqlety = (unsigned short)256;
  sqlstm.occurs = (unsigned int  )0;
  sqlstm.sqhstv[0] = (         void  *)&al_deptno;
  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.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_dept; */ 

{
   struct sqlexd sqlstm;

   sqlstm.sqlvsn = 10;
   sqlstm.arrsiz = 8;
   sqlstm.sqladtp = &sqladt;
   sqlstm.sqltdsp = &sqltds;
   sqlstm.iters = (unsigned int  )1;
   sqlstm.offset = (unsigned int  )609;
   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:cur_emp_dept 出错",sqlca.sqlcode,(char *)sqlca.sqlerrm.sqlerrmc);
		}	
		
		#ifdef _DEBUG_
		 	userlog("FETCHED dept:%d\n",al_deptno);
		#endif
		
		/*根据部门的代号取名称*/
		c_tmp[0]='\0';
		/* EXEC SQL select dname into :c_tmp
		from DEPT 
		where deptno = :al_deptno; */ 

{
  struct sqlexd sqlstm;

  sqlstm.sqlvsn = 10;
  sqlstm.arrsiz = 8;
  sqlstm.sqladtp = &sqladt;
  sqlstm.sqltdsp = &sqltds;
  sqlstm.stmt = "select dname into :b0  from DEPT where deptno=:b1";
  sqlstm.iters = (unsigned int  )1;
  sqlstm.offset = (unsigned int  )624;
  sqlstm.selerr = (unsigned short)1;
  sqlstm.cud = sqlcud0;
  sqlstm.sqlest = (unsigned char  *)&sqlca;
  sqlstm.sqlety = (unsigned short)256;
  sqlstm.occurs = (unsigned int  )0;
  sqlstm.sqhstv[0] = (         void  *)c_tmp;
  sqlstm.sqhstl[0] = (unsigned int  )11;
  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  *)&al_deptno;
  sqlstm.sqhstl[1] = (unsigned int  )4;
  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.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 != 0)
		{  	
			tux_return(sendbuf,"select dname from DEPT出错",sqlca.sqlcode,(char *)sqlca.sqlerrm.sqlerrmc);
		}
		lstr_dept[i].iNo=al_deptno;
		strcpy(lstr_dept[i].szName,c_tmp);
		i++;
		if(i>50)
		{
			/* EXEC SQL CLOSE cur_emp_dept; */ 

{
   struct sqlexd sqlstm;

   sqlstm.sqlvsn = 10;
   sqlstm.arrsiz = 8;
   sqlstm.sqladtp = &sqladt;
   sqlstm.sqltdsp = &sqltds;
   sqlstm.iters = (unsigned int  )1;
   sqlstm.offset = (unsigned int  )647;
   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,"部门太多!",sqlca.sqlcode,(char *)sqlca.sqlerrm.sqlerrmc);
		}
		
	}		
	/* EXEC SQL CLOSE cur_emp_dept; */ 

{
 struct sqlexd sqlstm;

 sqlstm.sqlvsn = 10;
 sqlstm.arrsiz = 8;
 sqlstm.sqladtp = &sqladt;
 sqlstm.sqltdsp = &sqltds;
 sqlstm.iters = (unsigned int  )1;
 sqlstm.offset = (unsigned int  )662;
 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)
	{  	
		/*CLOSE CURSOR失败*/  
		tux_return(sendbuf,"CLOSE CURSOR:cur_emp_dept 出错",sqlca.sqlcode,(char *)sqlca.sqlerrm.sqlerrmc);
	}
	/*取出的部门数*/
	iDept = i;
	/*求每个部门的工资总数*/
	sprintf(szHead,"%s","部门名称");
	sprintf(szRow,"%s","工资总数");
	for(i=0;i<iDept;i++)
	{	
		sprintf(szHead,"%s|%13s",szHead,lstr_dept[i].szName);
		
		af_sal =0;
		al_deptno=lstr_dept[i].iNo;
		/* EXEC SQL select sum(sal) into :af_sal
		from EMP 
		where deptno= :al_deptno; */ 

{
  struct sqlexd sqlstm;

  sqlstm.sqlvsn = 10;
  sqlstm.arrsiz = 8;
  sqlstm.sqladtp = &sqladt;
  sqlstm.sqltdsp = &sqltds;
  sqlstm.stmt = "select sum(sal) into :b0  from EMP where deptno=:b1";
  sqlstm.iters = (unsigned int  )1;
  sqlstm.offset = (unsigned int  )677;
  sqlstm.selerr = (unsigned short)1;
  sqlstm.cud = sqlcud0;
  sqlstm.sqlest = (unsigned char  *)&sqlca;
  sqlstm.sqlety = (unsigned short)256;
  sqlstm.occurs = (unsigned int  )0;
  sqlstm.sqhstv[0] = (         void  *)&af_sal;
  sqlstm.sqhstl[0] = (unsigned int  )8;
  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  *)&al_deptno;
  sqlstm.sqhstl[1] = (unsigned int  )4;
  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.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 != 0)
		{  	
			/*select sum(sal)失败*/  
			tux_return(sendbuf,"select sum(sal)失败",sqlca.sqlcode,(char *)sqlca.sqlerrm.sqlerrmc);
		}
		sprintf(szRow,"%s|%23.2f",szRow,af_sal);
	}
	
	len = sizeof(szHead);
	if(Fchg32(sendbuf, CROSSTAB, 0, szHead, (FLDLEN32)len )<0)
	{	
		tux_return(sendbuf,"Fchg32(CROSSTAB) 出错",0,(char *)Fstrerror32(Ferror32));
	}
	len = sizeof(szRow);
	if(Fchg32(sendbuf, CROSSTAB, 1, szRow, (FLDLEN32)len )<0)
	{	
		tux_return(sendbuf,"Fchg32(CROSSTAB) 出错",0,(char *)Fstrerror32(Ferror32));
	}
	/*notice: in the PB client the datawindow font must be chinese font
	then this will work ok*/
	userlog("%s\n",szHead);
	userlog("%s\n",szRow);
	tpreturn( TPSUCCESS, 0, (char *)sendbuf, 0, 0 );
}


/*EMP_COS SERVICES*/
/*EMP_COS(TPSVCINFO *rqst)
{
	FBFR32 *sendbuf=NULL;
	FBFR32 *rcvbuf=NULL;
	FLDLEN32 len=0;
	int i=0;
	int iRet=0;
	int iOc=0;
	int iRows=0;
	char szHead[2500]="";
	char szNode[2500]="";
	char szAmount[2500]="";
	char szSum[2500]="";
	int iOilTypes=0;
	
	
	
	userlog("begin EMP_COS\n");
	//分配返回缓冲区并初始化
	sendbuf = IniSendBuf(20480);
	if(sendbuf==NULL)
	{
		tpreturn( TPFAIL, 0, 0, 0L, 0 );
	}
	
	userlog("接收客户端来的数据\n");
	//接收客户端来的数据
	rcvbuf = (FBFR32 *)rqst->data;
	#ifdef _DEBUG_
		fprintf(stdout,"EMP_COS begin Fprint32......\n");
		Fprint32(rcvbuf);
		fprintf(stdout,"EMP_COS end Fprint32......\n");
	#endif	
	len = sizeof(ac_nodeno);
	ac_nodeno[0]='\0';
	if(Fget32(rcvbuf,NODENO,0,ac_nodeno,&len)== -1)
	{
		tux_return(sendbuf,"Fget32(NODENO) 出错",0,(char *)Fstrerror32(Ferror32));
		
	}
	
	len = sizeof(ac_begin_date);
	ac_begin_date[0]='\0';
	if(Fget32(rcvbuf,BEGIN_DATE,0,ac_begin_date,&len)== -1)
	{
		tux_return(sendbuf,"Fget32(BEGIN_DATE) 出错",0,(char *)Fstrerror32(Ferror32));
	}

	len = sizeof(ac_end_date);
	ac_end_date[0]='\0';
	if(Fget32(rcvbuf,END_DATE,0,ac_end_date,&len)== -1)
	{
		tux_return(sendbuf,"Fget32(END_DATE) 出错",0,(char *)Fstrerror32(Ferror32));
	}
	userlog("data from client nodeno=%s,begin_date=%s,end_date=%s\n",ac_nodeno,ac_begin_date,ac_end_date);
	
	//select the node name from nodeinfor
	EXEC SQL SELECT nodename into :c_nodename
	from nodeinfor 
	where nodeno = :ac_nodeno;
	if(sqlca.sqlcode!=0)
	{ 
		tux_return(sendbuf,"select the node name from nodeinfor 出错",sqlca.sqlcode,(char *)sqlca.sqlerrm.sqlerrmc);
	}
	//取油的种类
	EXEC SQL DECLARE cur_oil_type CURSOR FOR 
		SELECT oilno
		FROM nodetotalinfor_new
		where nodeno = :ac_nodeno
		and   time >= :ac_begin_date
		and   time <= :ac_end_date;
	if(sqlca.sqlcode!=0)
	{ 
		tux_return(sendbuf,"DECLARE CURSOR:cur_oil_type 出错",sqlca.sqlcode,(char *)sqlca.sqlerrm.sqlerrmc);
	}
	EXEC SQL OPEN cur_oil_type;
	if(sqlca.sqlcode!=0)
	{
		EXEC SQL CLOSE cur_oil_type;
		tux_return(sendbuf,"OPEN CURSOR:cur_oil_type 出错",sqlca.sqlcode,(char *)sqlca.sqlerrm.sqlerrmc);
	}

	
	sprintf(szHead,"%20s","");
	sprintf(szNode,"%20s","网点名称");
	sprintf(szAmount,"%20s",c_nodename);
	sprintf(szSum, "%20s","总计");

	i = 0;
	while(1)
	{
		c_code[0]='\0';
		c_content[0]='\0';
		EXEC SQL FETCH cur_oil_type INTO :c_code;
		if( sqlca.sqlcode  == SQLNOTFOUND)
		{
			break;
		}
		//当取出的值是null时,sqlca.sqlcode = -1405
		if ((sqlca.sqlcode != 0)&&(sqlca.sqlcode!= SQLNULL))
		{  	
			//FETCH CURSOR失败
			EXEC SQL CLOSE cur_oil_type;
			tux_return(sendbuf,"FETCH CURSOR:cur_oil_type 出错",sqlca.sqlcode,(char *)sqlca.sqlerrm.sqlerrmc);
		}	
		//select oil name
		EXEC SQL SELECT content into :c_content
		from oiltype 
		where code = :c_code;
		if (sqlca.sqlcode != 0)
		{  	
			//SELEFT CONTENT FROM OILTYPE失败
			tux_return(sendbuf,"SELEFT CONTENT FROM OILTYPE失败",sqlca.sqlcode,(char *)sqlca.sqlerrm.sqlerrmc);
		}
		#ifdef _DEBUG_
		 	userlog("FETCHED code=%s,content=%s\n",c_code,c_content);
		#endif
		
		EXEC SQL SELECT sum(amount),sum(litter)
		into :c_amount, :c_litter
		from nodetotalinfor_new
		where nodeno = :ac_nodeno
		and   oilno = :c_code
		and   time >= :ac_begin_date
		and   time <= :ac_end_date;
		if (sqlca.sqlcode != 0)
		{  	
			//select data from nodetotalinfor_new失败
			tux_return(sendbuf,"select data from nodetotalinfor_new失败",sqlca.sqlcode,(char *)sqlca.sqlerrm.sqlerrmc);
		}
		userlog("amount=%s,litter=%s\n",c_amount,c_litter);
		
		sprintf(szHead,"%s|%30s",szHead,c_content);
		sprintf(szNode,"%s|%31s",szNode,"数量  |金额      ");
		sprintf(szAmount,"%s|%15s|%15s",szAmount,c_amount,c_litter);
		sprintf(szSum, "%s|%15s|%15s",szSum,c_amount,c_litter);
		
	}
			
	EXEC SQL CLOSE cur_oil_type;
	if (sqlca.sqlcode != 0)
	{  	
		//CLOSE CURSOR失败
		tux_return(sendbuf,"CLOSE CURSOR:cur_oil_type 出错",sqlca.sqlcode,(char *)sqlca.sqlerrm.sqlerrmc);
	}

	len = sizeof(szHead);
	if(Fchg32(sendbuf, CROSSTAB, 0, szHead, (FLDLEN32)len )<0)
	{	
		tux_return(sendbuf,"Fchg32(CROSSTAB) 出错",0,(char *)Fstrerror32(Ferror32));
	}
	len = sizeof(szNode);
	if(Fchg32(sendbuf, CROSSTAB, 1, szNode, (FLDLEN32)len )<0)
	{	
		tux_return(sendbuf,"Fchg32(CROSSTAB) 出错",0,(char *)Fstrerror32(Ferror32));
	}
	
	len = sizeof(szAmount);
	if(Fchg32(sendbuf, CROSSTAB, 2, szAmount, (FLDLEN32)len )<0)
	{	
		tux_return(sendbuf,"Fchg32(CROSSTAB) 出错",0,(char *)Fstrerror32(Ferror32));
	}
	
	len = sizeof(szSum);
	if(Fchg32(sendbuf, CROSSTAB, 3, szSum, (FLDLEN32)len )<0)
	{	
		tux_return(sendbuf,"Fchg32(CROSSTAB) 出错",0,(char *)Fstrerror32(Ferror32));
	}
	userlog("@@@%s\n",szHead);
	userlog("@@@%s\n",szNode);
	userlog("@@@%s\n",szAmount);
	userlog("@@@%s\n",szSum);
	#ifdef _DEBUG_
		Fprint32(sendbuf); 
	#endif
	tpreturn( TPSUCCESS, 0, (char *)sendbuf, 0, 0 );
}

	
*/

⌨️ 快捷键说明

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