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

📄 proc.ec

📁 在IBM RS6000小型机上AIX操作系统下INFORMIX数据库C源代码有通讯和管理程序
💻 EC
📖 第 1 页 / 共 3 页
字号:
	flag++;	}	 $fetch cur_curs into $sfjzh_msg;	if(sqlca.sqlcode!=0){flag_f=0;break;}        fprintf(fp,"%-12s%-40s%14s\n",sfjzh_msg.sfdwzh,sfjzh_msg.sfdwmc,sfjzh_msg.qcjy);	flag++;if(flag==21)flag=1; break; case 23:	if(flag==1)       { 	fprintf(fp,"%-13s%-40s\n","收费项目","项目名称");	flag++;	}	 $fetch cur_curs into $sfjxm_msg;	if(sqlca.sqlcode!=0){flag_f=0;break;}        fprintf(fp,"%-8s%-40s\n",sfjxm_msg.sfxm,sfjxm_msg.xmmc);	flag++;if(flag==21)flag=1; break; default:break; }}fclose(fp);sprintf(sndname,"%s","/usr/hcdl/dlmg/server/report/sndfile");memcpy(msg->rc,PATR_OK,2);return(3);}fun_check(opcode,myfun,oplevel)char opcode[],myfun[],oplevel[];{char c_date[9],c_time[7];char stime[50];$char funname[16],fundes[81],funpre[16],funlevel[6];$int funuse,funuse1;$char logcode[3],logdate[25],logfun[16];char choice[2];int i;i=oplevel[0]-'0';i--;strcpy(funname,myfun);$select unique fun_p,fun_u,fun_l	into $funpre,$funuse,$funlevel	from fun_adm	where fun_n = $funname;if(sqlca.sqlcode!=0)    {	return(1);    }if(funlevel[i]=='0')	{	return(2);    	}if(strncmp(funpre,"NO",2)!=0)	{	$select unique fun_u		into $funuse1		from fun_adm		where fun_n = $funpre;	if(sqlca.sqlcode!=0)    		{		return(1);    		}	if(funuse1 < 1)    		{		return(3);    		}	}funuse=funuse+1;$update fun_adm	set fun_u=$funuse	where fun_n=$funname;if(sqlca.sqlcode!=0)    {	printf("修 改 失 败 !!\n");	return(4);    }return(0);}proc21(msg)DL_MSG *msg;{/*    6000开工    */    $ int rq;    $ long jys,k,lsh_max,lsh_min,beg,end;    /*   判是否已开工  */    $ select * from lskzb where rq=today;    if(sqlca.sqlcode!=0&&sqlca.sqlcode!=100)	/*   fail to execute sql */    {	memcpy(msg->rc,PATR_CXERR,2);       puts("select form lskzb\n");        return(-1);    }    if(sqlca.sqlcode==0)			/*   已开工  */    {       if (rest_shm()<0) {       puts("rest_shm \n");	 memcpy(msg->rc,PATR_NCS,2);         return(1);       }	memcpy(msg->rc,PATR_OK,2);        return(0);    }    /*  联机流水表的数据写入历史流水表  */    $lock table lslsb in exclusive mode;    $lock table ljlsb in exclusive mode;    $lock table sfjmxb in exclusive mode;    $lock table sfjmxlsb in exclusive mode;    $lock table lskzb in exclusive mode;    $ begin work;     $ insert into lslsb 		select  * from ljlsb;    if((sqlca.sqlcode!=0) && (sqlca.sqlcode!=SQLNOTFOUND))     {	printf("%d",SQLCODE);	$ rollback work;	puts("insert lslsb error\n");       memcpy(msg->rc,PATR_INSERT,2);       return(1);    }    /*  删除联机流水表的数据  */   $ delete from ljlsb;      if(sqlca.sqlcode!=0 && sqlca.sqlcode!=SQLNOTFOUND)  			/*   fail to execute sql */    {	$ rollback work;	puts("delete ljlsb error\n");       memcpy(msg->rc,PATR_INSERT,2);       return(1);    }    $ insert into sfjmxlsb 		select  * from sfjmxb;    if(sqlca.sqlcode!=0 && sqlca.sqlcode!=SQLNOTFOUND)  			/*   fail to execute sql */    {	printf("%d",SQLCODE);	$ rollback work;	puts("insert sfjmxlsb error\n");       memcpy(msg->rc,PATR_INSERT,2);       return(1);    }    /*  删除收费局明细表的数据  */   $ delete from sfjmxb;     if(sqlca.sqlcode!=0 && sqlca.sqlcode!=SQLNOTFOUND)  			/*   fail to execute sql */    {	$ rollback work;	puts("delete sfjmxb error\n");       memcpy(msg->rc,PATR_INSERT,2);       return(1);    }    /*  清最大流水号,置当日日期  */    $ update lskzb        		set mlsh=0,rq=today;    if(sqlca.sqlcode!=0)			/*   fail to execute sql */    {	$ rollback work;       memcpy(msg->rc,PATR_UPDATE,2);       return(1);    }    /*  起共享内存 */    if (init_shm()<0) {	$ rollback work;	memcpy(msg->rc,PATR_NCS,2);      return(1);    }    /*  删除最早的一日流水  */    $ commit work;    memcpy(msg->rc,PATR_OK,2);    return(1);}proc22(msg)DL_MSG *msg;{$char opcode[3],opl[2];$char c_date[9],c_time[20];$char hcdl_date[9];FILE *fp;int mapbool;strmove(opcode,msg->teller,2);$select oper_level into $opl from operater_arch where oper_code=$opcode;mapbool=fun_check(opcode,"start_mp",opl);get_time(c_date,c_time);switch(mapbool){case 1: memcpy(msg->rc,PATR_WCCX,2);return(0);case 2: memcpy(msg->rc,PATR_WQ,2);return(0);case 3: memcpy(msg->rc,PATR_QTB,2);return(0);case 4: memcpy(msg->rc,PATR_XGC,2);return(0);}if((fp=fopen("/usr/hcdl/dlmg/server/report/start_mp","r"))!=NULL){memcpy(msg->rc,PATR_LJYQ,2);   return(0);}fclose(fp);system("/usr/hcdl/online/bin/mp &");system("/usr/hcdl/onlineac/bin/mpac &");post_check("start_mp",msg);memcpy(msg->rc,PATR_OK,2);return(1);}proc01(msg)DL_MSG *msg;{$char opcode[3],opl[2];FILE *fp;int pid,pidac;char fun_name[20];char filename[20];char yn[2];int mapbool,mapbool1;strmove(opcode,msg->teller,2);$select oper_level into $opl from operater_arch where oper_code=$opcode;mapbool=fun_check(opcode,"stop_mp",opl);switch(mapbool){case 1:memcpy(msg->rc,PATR_WCCX,2);return(0);case 2:memcpy(msg->rc,PATR_WQ,2);return(0);case 3:memcpy(msg->rc,PATR_QTB,2);return(0);case 4:memcpy(msg->rc,PATR_XGC,2);return(0);}if((fp=fopen("/usr/hcdl/dlmg/server/report/start_mp","r"))==NULL){  memcpy(msg->rc,PATR_LJWQ,2);  return(0);}       if (kill_mp(msg)<0) {            memcpy(msg->rc,PATR_KIERR,2);            printf("kill 进程失败 !!");                        }       else{            memcpy(msg->rc,PATR_OK,2);            printf("kill 进程成功 !!");            }fscanf(fp,"%d %d",&pid,&pidac);sprintf(fun_name,"kill -9 %d %d",pid,pidac);system(fun_name);fclose(fp);system("rm /usr/hcdl/dlmg/server/report/start_mp");post_check("stop_mp",msg);memcpy(msg->rc,PATR_OK,2);return(1);}int get_time(char *c_date,char *c_time){long now_second;struct tm his;time(&now_second); his = *(localtime(&now_second));if (his.tm_year<90)   his.tm_year+=2000;else   his.tm_year+=1900; sprintf (c_date,"%04d%02d%02d\0",his.tm_year,his.tm_mon+1,his.tm_mday);sprintf (c_time,"%02d%02d%02d\0",his.tm_hour,his.tm_min,his.tm_sec);return(1);}post_check(fun,mmsg)char fun[];DL_MSG *mmsg;{$char funname[16];$int funuse;char choice[3];strcpy(funname,fun);$select fun_u	into $funuse	from fun_adm	where fun_n = $funname;if(sqlca.sqlcode!=0)    {memcpy(mmsg->rc,PATR_PDR,2);return(0);    }funuse=funuse+1;$update fun_adm	set fun_u=$funuse	where fun_n=$funname;if(sqlca.sqlcode!=0)    {        memcpy(mmsg->rc,PATR_PXG,2);	return(0);    }return(1);}/*    6000日终处理 */   /*new proc91 written on 10.25.98*/proc91(msg)DL_MSG *msg;{/*   RS6000轧帐    */    $char opl[2];    $ struct st_wtdwb tb_wtdwb;    $ struct st_cxszzb tb_cxszzb;    $ int tot_count;    int i,len;                  tb_wtdwb.skzje=0;tb_wtdwb.ljwjzje=0;tb_wtdwb.ljyjzje=0;                tb_wtdwb.plskje=0;tb_wtdwb.plfkje=0;       /*to determine if this operator has the right to continue*/       /*int mapbool;	strmove(opcode,msg->teller,2);	$select oper_level into $opl from operater_arch where oper_code=$opcode;	mapbool=fun_check(opcode,"start_mp",opl);	get_time(c_date,c_time);	switch(mapbool)	{	case 1: memcpy(msg->rc,PATR_WCCX,2);return(0);	case 2: memcpy(msg->rc,PATR_WQ,2);return(0);	case 3: memcpy(msg->rc,PATR_QTB,2);return(0);	case 4: memcpy(msg->rc,PATR_XGC,2);return(0);	}      */         /*to see if /usr/hcdl/online/bin/&mp process has been killed*/     if((fopen("/usr/hcdl/dlmg/server/report/start_mp","r"))!=NULL)       {        memcpy(msg->rc,PATR_LJYQ,2);           return(0);       }         /*生成本日单位轧帐表*/    $ declare p_cur cursor for         select * from wtdwb;    $ open p_cur;    if(sqlca.sqlcode!=0)    	{       		puts("\n Fetch from p_cur(0) err!");		memcpy(msg->rc,PATR_YBC,2);                $rollback  work;       		return(0);    	}     /*   判断今日是否已做过轧帐*/      $ select count(*) into $tot_count 		from wtdwb		where rq=today and jzbz="1";    if(sqlca.sqlcode!=0)  			    {        puts("\n Select from wtdwb err!");	memcpy(msg->rc,PATR_CXERR,2);        return(0);    }    if(tot_count!=0)/*本日已做过轧帐*/    {        /*只轧wtdwb,不再重轧cxszzb*/                /*生成本日单位轧帐表*/        $begin work;        while(1)        {         $fetch  p_cur into $tb_wtdwb;    	 if(sqlca.sqlcode!=0&&sqlca.sqlcode!=SQLNOTFOUND)    	  {       		puts("\n Fetch from p_cur err!");		memcpy(msg->rc,PATR_YBC,2);                $rollback  work;       		return(0);    	  }         if(sqlca.sqlcode==SQLNOTFOUND)           break;         $select sum(je) into $tb_wtdwb.skzje from cxszzb where                       (not zt3="8") and dwdm=$tb_wtdwb.dwdm;               if(tot_count==0)             tb_wtdwb.skzje=0;         $select sum(je) into $tb_wtdwb.plskje from cxszzb where                       zt3="7" and dwdm=$tb_wtdwb.dwdm;               if(tot_count==0)             tb_wtdwb.plskje=0;         $select sum(je) into $tb_wtdwb.plfkje from cxszzb where                       zt3="8" and dwdm=$tb_wtdwb.dwdm;               if(tot_count==0)             tb_wtdwb.plfkje=0;         $update wtdwb set (skzje,plskje,plfkje)              =($tb_wtdwb.skzje,$tb_wtdwb.plskje,$tb_wtdwb.plfkje)              where dwdm=$tb_wtdwb.dwdm;    	 if(sqlca.sqlcode!=0)    	  {       		puts("\n update wtdwb(2)  err!");		memcpy(msg->rc,PATR_YBC,2);                $rollback  work;       		return(0);    	  }        }         }    else/*本日第一次轧帐*/    {        /*先轧cxszzb表,再轧wtdwb*/       $begin work;       /*删除储蓄所轧帐表*/            $lock table cxszzb in exclusive mode;       $delete from cxszzb;       if(sqlca.sqlcode!=0)  		        {         puts("\n Delete cxszzb err!");	 memcpy(msg->rc,PATR_DELE,2);         $rollback  work;         return(0);        }       /*生成本日储蓄所轧帐表*/            $insert into cxszzb(sh,gyh,dslx,dwdm,jydm,kkfs,zt3,je,rq)            select sh,jlyh,dslx,dwdm,jym,zt2,zt3,je,jkrq                             from ljlsb                           where jybz="0" and zt1="1" and jkrq=today;        /*what if ljlsb is empty*/    	if(sqlca.sqlcode!=0)  			/*   fail to execute sql */    	{       		puts("\n insert into cxszzb from ljlsb err1!");		memcpy(msg->rc,PATR_YBC,2);                $rollback  work;       		return(1);    	}        while(1)        {         $fetch  p_cur into $tb_wtdwb;    	 if(sqlca.sqlcode!=0&&sqlca.sqlcode!=SQLNOTFOUND)    	  {       		puts("\n Fetch from p_cur err!");		memcpy(msg->rc,PATR_YBC,2);                $rollback  work;       		return(0);    	  }         if(sqlca.sqlcode==SQLNOTFOUND)           break;         $select count(*),sum(je) into $tot_count,$tb_wtdwb.skzje                       from cxszzb where                       (not zt3="8") and dwdm=$tb_wtdwb.dwdm;               if(tot_count==0)             tb_wtdwb.skzje=0;         $select count(*),sum(je) into $tot_count,$tb_wtdwb.ljwjzje                        from cxszzb where                       zt3="5" and dwdm=$tb_wtdwb.dwdm;               if(tot_count==0)             tb_wtdwb.ljwjzje=0;         $select count(*),sum(je) into $tot_count,$tb_wtdwb.ljyjzje                        from cxszzb where                       zt3="6" and dwdm=$tb_wtdwb.dwdm;               if(tot_count==0)             tb_wtdwb.ljyjzje=0;         $select count(*),sum(je) into $tot_count,$tb_wtdwb.plskje                        from cxszzb where                       zt3="7" and dwdm=$tb_wtdwb.dwdm;               if(tot_count==0)             tb_wtdwb.plskje=0;         $select count(*),sum(je) into $tot_count,$tb_wtdwb.plfkje                        from cxszzb where                       zt3="8" and dwdm=$tb_wtdwb.dwdm;               if(tot_count==0)             tb_wtdwb.plfkje=0;         $update wtdwb set (skzje,ljwjzje,ljyjzje,plskje,plfkje,jzbz,rq)              =($tb_wtdwb.skzje,$tb_wtdwb.ljwjzje,$tb_wtdwb.ljyjzje,                $tb_wtdwb.plskje,$tb_wtdwb.plfkje,"0",today)              where dwdm=$tb_wtdwb.dwdm;    	 if(sqlca.sqlcode!=0)    	  {       		puts("\n update wtdwb(1)  err!");		memcpy(msg->rc,PATR_YBC,2);                $rollback  work;       		return(0);    	  }        }          }    $ commit work;    $ close p_cur;    $ free p_cur;    puts("\n");    puts("\n  轧帐完成!");    memcpy(msg->rc,PATR_OK,2);    return(0);}

⌨️ 快捷键说明

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