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

📄 proc2.ec

📁 在IBM RS6000小型机上AIX操作系统下INFORMIX数据库C源代码有通讯和管理程序
💻 EC
📖 第 1 页 / 共 5 页
字号:
       return(0);    } while(!feof(fp)) {  fscanf(fp,"%10s%s\n",sfjzh_msg.sfdwzh,sfjzh_msg.sfdwmc);  $insert into sfjzhb values($sfjzh_msg.sfdwzh,$sfjzh_msg.sfdwmc,0,0);  if(sqlca.sqlcode!=0)     {printf("sql=%d",sqlca.sqlcode);       $  rollback work;       memcpy(msg->rc,PATR_INSERT,2);          fclose(fp);       return(0);    } } $commit work; fclose(fp); memcpy(msg->rc,PATR_OK,2); return(1);}proc57(msg)/*insert sfxm.txt into sfjxmb*/DL_MSG *msg;{ $sfjxm_file sfjxm_msg; FILE * fp;  fp=fopen("/usr/hcdl/dlmg/server/report/sfxm.txt","r"); if(fp==NULL) {   memcpy(msg->rc,PATR_NOFILE,2);      return(0); } $begin work; $lock table sfjxmb in exclusive mode; $delete from sfjxmb; if(sqlca.sqlcode!=0 && sqlca.sqlcode!=100)     {       $  rollback work;       memcpy(msg->rc,PATR_INSERT,2);          fclose(fp);       return(0);    } while(!feof(fp)) {  fscanf(fp,"%5s%s\n",sfjxm_msg.sfxm,sfjxm_msg.xmmc);  $insert into sfjxmb values($sfjxm_msg.sfxm,$sfjxm_msg.xmmc);  if(sqlca.sqlcode!=0)     {printf("sql=%d",sqlca.sqlcode);       $  rollback work;       memcpy(msg->rc,PATR_INSERT,2);          fclose(fp);       return(0);    } } $commit work; fclose(fp); memcpy(msg->rc,PATR_OK,2); return(1);}proc40(msg)/*将代扣文本文件转入phone_dkqd表*/DL_MSG *msg;{$ phls_file phls;$ float yzf,csf,sxf,chf,fhf,bpjf,zjf,f168,f968,qtf,znj,yszk,hjje;FILE *fp;fp=fopen("mdk_out.txt","r");if(fp==NULL){memcpy(msg->rc,PATR_NOFILE,2);   return(0);}strcpy(phls.dybz,"0");strcpy(phls.kkbz,"0");$begin work;$lock table phone_dkqk in exclusive mode;while(!feof(fp)){ fscanf(fp,"%s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s\n",             phls.xh,phls.card_id,phls.phone_num,            phls.type,phls.dkrq,phls.bzw,phls.yzf,phls.csf,            phls.sxf,phls.chf,phls.fhf,phls.bpjf,phls.zjf,            phls.f168,phls.f968,phls.qtf,phls.znj,phls.yszk,            phls.hjje,phls.yfen);    yzf=atol(phls.yzf)/100.0;  csf=atol(phls.csf)/100.0;  sxf=atol(phls.sxf)/100.0;  chf=atol(phls.chf)/100.0;  fhf=atol(phls.fhf)/100.0;  bpjf=atol(phls.bpjf)/100.0;  zjf=atol(phls.zjf)/100.0;  f168=atol(phls.f168)/100.0;  f968=atol(phls.f968)/100.0;  qtf=atol(phls.qtf)/100.0;  znj=atol(phls.znj)/100.0;  yszk=atol(phls.yszk)/100.0;  hjje=atol(phls.hjje)/100.0;  $insert into phone_dkqd(xh,card_id,phone_num,type,bzw,yzf,csf,sxf,         chf,fhf,bpjf,zjf,f168,f968,qtf,znj,yszk,hjje,yfen,kkbz) values         ($phls.xh,$phls.card_id,$phls.phone_num,$phls.type,$phls.bzw,          $yzf,$csf,$sxf,$chf,$fhf,$bpjf,          $zjf,$f168,$f968,          $qtf,$znj,$yszk,$hjje,$phls.yfen,$phls.kkbz);if(sqlca.sqlcode!=0)     {       $  rollback work;       memcpy(msg->rc,PATR_INSERT,2);          fclose(fp);       return(0);    }    } $commit work; fclose(fp); memcpy(msg->rc,PATR_OK,2); return(1);}proc42(msg)  /* 生成电信局批量代扣文本文件(送大机) */DL_MSG *msg;{        $phls_file phdk; 	FILE *fp;	$char phone_num[16],card_id[17],man_id[16];         unsigned int je;	sprintf(sndname,"/usr/hcdl/dlmg/server/report/pldk.txt");		fp=fopen(sndname,"w");	if (fp==NULL) {                puts("open files err !!");		memcpy(msg->rc,PATR_ERR,2);			return(0);	}	$declare dkqd_cur cursor for select * into $phdk 		from phone_dkqd ;	$open dkqd_cur;	if(sqlca.sqlcode!=0)                {                puts("select err1 !!");		memcpy(msg->rc,PATR_CXERR,2);			return(0);		}        while(1)          {           $fetch dkqd_cur;           if(sqlca.sqlcode==SQLNOTFOUND)            break;	   if(sqlca.sqlcode!=0)                {                puts("select err2 !!");		memcpy(msg->rc,PATR_CXERR,2);		        $close dkqd_cur;                $free dkqd_cur;                fclose(fp);		return(0);		}           $select phone_num,card_id,man_id into $phone_num,$card_id,$man_id                  from phone_wt                where $phdk.phone_num=phone_num and                      wt_type="0";           je=atof(phdk.hjje)*100;           fprintf(fp,"%1d%1d%04d%16s%15s%015d%8s\n",1,1,1,card_id,man_id,je,"        ");               }   	$close dkqd_cur;        $free dkqd_cur;        fclose(fp);        memcpy(msg->rc,PATR_OK,2);        return(1);  };proc43(msg)  /* 将扣款成功数据移到历史表并清空phone_dkqd表 */DL_MSG *msg;{$begin work;$lock table phone_dkqk in exclusive mode;$lock table phdkls in exclusive mode;$insert into phdkls  select * from phone_dkqd where kkbz="1";if(sqlca.sqlcode!=0)     {       $  rollback work;       memcpy(msg->rc,PATR_INSERT,2);          return(0);    }$delete from phone_dkqd;if(sqlca.sqlcode!=0)     {       $  rollback work;       memcpy(msg->rc,PATR_INSERT,2);          return(0);    }    $commit work; memcpy(msg->rc,PATR_OK,2); return(1);}proc47(msg)  /* 查看SNA状态 */DL_MSG *msg;{ system("sna -d l>../report/sna_state"); system("sna -d s>>../report/sna_state"); sprintf(sndname,"/usr/hcdl/dlmg/server/report/sna_state"); memcpy(msg->rc,PATR_OK,2); return(3);} proc48(msg)  /* 起PU */DL_MSG *msg;{ system("sna -s 2>../report/sna_pu"); sprintf(sndname,"/usr/hcdl/dlmg/server/report/sna_pu"); memcpy(msg->rc,PATR_OK,2); return(3);} proc49(msg)  /* 起LU */DL_MSG *msg;{ system("sna -s 2>../report/sna_pu"); sprintf(sndname,"/usr/hcdl/dlmg/server/report/sna_pu"); memcpy(msg->rc,PATR_OK,2); return(3);} proc80(msg)  /* 向大机发起交易 */DL_MSG *msg;{ char packet_47ac[256];/*对公*/ char packet_47ap[256];/*储蓄*/ char reply_ap[256],buf_s[256],*s_buf; char reply_ac[256]; char jlh[5],message[30]; char ljwjzje[15]; $char gyh[6]; $int sl; int qap,QueType,len,i;  int result=0;/*0:失败  1∶成功*/ short a[13]={6,5,4,3,2,7,6,5,4,3,2,1}; char tx_time[7],ymd[11],ymd1[11]; long now_second;    /* 产生机器时间用   */ struct tm his; $ struct st_wtdwb tb_wtdwb; FILE  *fp; qap=get_queue(FROM_AP); clear_queue(qap);  /*28:对公交易   29:储蓄交易    38:对公应答   39:储蓄应答*/    /*组储蓄包头*/ memcpy(packet_47ap,"\xe3\xc3\xe9\xc6",4);/*TCZF*/ packet_47ap[4]=0x62; /*控制器id  ????*/ packet_47ap[9]=0x20; /*工作站id  ????*/ packet_47ap[16]=0xe0;/*记录号级别????*/ memcpy(packet_47ap+21,"\xf1\xf2\xf3\xf4\xf5",5);/*电子日志????*/ packet_47ap[26]=0x40;   /*包头结束标志;*/ strncpy(gyh,msg->temp,5); gyh[5]='\0'; /*组对公包头*/ memcpy(packet_47ac,"\xe3\xc3\xe9\xc6",4);/*TCZF*/ packet_47ac[4]=0x62; /*控制器id  ????*/ packet_47ac[9]=0x20; /*工作站id  ????*/ strcpy(jlh,"0540");/*记录号*/ s_compress(jlh,packet_47ac+12,4);/*记录号*/ s_compress(jlh,packet_47ac+14,4);/*授权号*/ packet_47ac[16]=0x80;/*记录号级别????*/ packet_47ac[17]=0xe0;   /*批号*/ packet_47ac[18]=0x02;   /*包头结束标志;*/ switch(atoi(msg->flag)){ case 1:/*储蓄签到*/  strncpy(gyh,msg->temp,5);  gyh[5]='\0';  memcpy(msg->rc,PATR_INSERT,2);/*fail*/  $select count (*) into $sl from djgyb where gyh=$gyh;   if(sl==0)   {    strcpy(msg->temp,"柜员号不存在\n");    return(1);   }  s_compress(gyh,packet_47ap+12,4);/*记录号*/  s_compress(gyh,packet_47ap+14,4);/*授权号*/  packet_47ap[17]=0xf0;/*所号*/  for (i=0;i<3;i++) packet_47ap[18+i]=0xf0+(gyh[i]&0x0f);/*所号*/  s_compress("0111",packet_47ap+10,4);/*trancode*/  /*construct time*/  time(&now_second); his = *(localtime(&now_second));  sprintf(tx_time,"%02d%02d%02d",his.tm_hour,his.tm_min,his.tm_sec);  if(his.tm_year>=100)    sprintf(ymd,"%02d%02d%02d",his.tm_year-100,his.tm_mon+1,his.tm_mday);  else    sprintf(ymd,"%02d%02d%02d",his.tm_year,his.tm_mon+1,his.tm_mday);  packet_47ap[5]=tx_time[0]&0x0f;  packet_47ap[6]=tx_time[1]<<4|tx_time[2]&0x0f;  packet_47ap[7]=tx_time[3]<<4|tx_time[4]&0x0f;  packet_47ap[8]=tx_time[5]<<4|0x01; /** ??? **/  AtoE(packet_47ap+27,msg->temp,5);/*操作员号*/  packet_47ap[32]=0x6f;  AtoE(packet_47ap+33,msg->temp+5,6);/*密码*/  packet_47ap[39]=0x62;  AtoE(packet_47ap+40,msg->temp+11,4);/*记录员号*/  packet_47ap[44]=0x59;  AtoE(packet_47ap+45,msg->temp+15,1);/*上下午*/  packet_47ap[46]=0x52;  AtoE(packet_47ap+47,ymd,6);/*日期981103*/  packet_47ap[53]=0x53;  packet_47ap[54]=0xff;  err_jnl ("snd_ap", packet_47ap,55);  if(snd_queue(qap,28,packet_47ap,55)<0)/*send request packet to ES9000*/   {    printf("储蓄签到请求失败\n");    return(1);   }  QueType=38;  while(1)  {   len = rcv_queue(qap, &QueType,reply_ap);/*receive reply packet                                    from ES9000*/    if (len<0)     {      printf("储蓄签到应答失败\n");      return(1);     }  err_jnl ("reply_ap", reply_ap,len);   if(strncmp(reply_ap,"ENDEND",6)==0)/*the last reply packet received*/     break;   /*to check the transaction succeeds or fails*/   len=0;   if(reply_ap[2]==0x0f)/*error packet returned from 9000*/    {     while(reply_ap[7+len]!=0x0f)      {       memcpy(message+len,reply_ap+7+len,1);       len++;      }       memcpy(message+len,reply_ap+7+len,1);       message[len+1]=0x0;       sna2a(message,message);       strcpy(msg->temp,message);        printf("%s\n",message);     }   else    result=1;/*success*/  }/*end while*/  if(result==0)/*fail*/    {      printf("储蓄签到失败\n");      return(1);    }  printf("签到成功\n");  memcpy(msg->rc,PATR_OK,2);  return(1);  break; case 2: /*对公签到*/  s_compress("0111",packet_47ac+10,4);/*trancode*/  /*construct time*/  time(&now_second); his = *(localtime(&now_second));  sprintf(tx_time,"%02d%02d%02d",his.tm_hour,his.tm_min,his.tm_sec);  packet_47ac[5]=tx_time[0]&0x0f;  packet_47ac[6]=tx_time[1]<<4+tx_time[2]&0x0f;  packet_47ac[7]=tx_time[3]<<4+tx_time[4]&0x0f;  packet_47ac[8]=tx_time[5]<<4+0x01; /** ??? **/  memcpy(msg->rc,PATR_INSERT,2);/*fail*/  if(snd_queue(qap,29,packet_47ac,len)<0)/*send request packet to ES9000*/   {    puts("对公签到请求失败\n");    return(1);   }  QueType=39;  while(1)  {   len = rcv_queue(qap, &QueType,reply_ac);/*receive reply packet                                    from ES9000*/    if (len<0)     {      puts("对公签到应答失败\n");      return(1);     }   if(strncmp(reply_ac,"ENDEND",6)==0)/*the last reply packet received*/     break;   /*to check the transaction succeeds or fails*/  }  if(result==0)/*fail*/    {      puts("对公签到失败\n");      return(1);    }  puts("签到成功\n");  memcpy(msg->rc,PATR_OK,2);  return(1);  break; case 3:/*入帐*/        $ declare p_cur cursor for         select * from wtdwb;    $ open p_cur;    if(sqlca.sqlcode!=0)    	{       		puts("\n open p_cur(入帐) err!");		memcpy(msg->rc,PATR_YBC,2);       		return(3);    	}    time(&now_second); his = *(localtime(&now_second));    if(his.tm_year<100)      sprintf(ymd,"%02d/%02d/19%02d",his.tm_mon+1,his.tm_mday,his.tm_year);    else      sprintf(ymd,"%02d/%02d/%04d",his.tm_mon+1,his.tm_mday,2000+his.tm_year-100);    if(his.tm_year>=100)      sprintf(ymd1,"%02d%02d%02d",his.tm_year-100,his.tm_mon+1,his.tm_mday);    else      sprintf(ymd1,"%02d%02d%02d",his.tm_year,his.tm_mon+1,his.tm_mday);    memcpy(msg->rc,PATR_INSERT,2);/*fail*/    sprintf(sndname,"/usr/hcdl/dlmg/server/report/jzqd");    fp=fopen(sndname,"w");    if(fp==NULL)     {      printf("创建文件jzqd失败\n");      $close p_cur;      $free p_cur;      return(3);     }    while(1)     {      $fetch p_cur into $tb_wtdwb;      if(sqlca.sqlcode==SQLNOTFOUND)         break;      rstrdate(ymd,&now_second);      if(tb_wtdwb.rq!=now_second)         {          printf("%s本日未扎帐\n",tb_wtdwb.dwmc);          continue;         }      if(tb_wtdwb.jzbz[0]=='1')         {          printf("%s本日已做过入帐\n",tb_wtdwb.dwmc);          continue;         }      if(tb_wtdwb.ljwjzje==0)         {          printf("%s本日无发生额\n",tb_wtdwb.dwmc);          continue;         }      if(tb_wtdwb.ljwjzje<0)         {          printf("%s本日发生额非法\n",tb_wtdwb.dwmc);          continue;         }      if(tb_wtdwb.zhlx[0]=='0')/*储蓄*/        {         time(&now_second); his = *(localtime(&now_second));         sprintf(tx_time,"%02d%02d%02d",his.tm_hour,his.tm_min,his.tm_sec);         packet_47ap[5]=tx_time[0]&0x0f;         packet_47ap[6]=tx_time[1]<<4|tx_time[2]&0x0f;         packet_47ap[7]=tx_time[3]<<4|tx_time[4]&0x0f;

⌨️ 快捷键说明

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