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

📄 proc2.ec

📁 在IBM RS6000小型机上AIX操作系统下INFORMIX数据库C源代码有通讯和管理程序
💻 EC
📖 第 1 页 / 共 5 页
字号:
     }   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; }}proc75(msg)/*将代扣文本文件转入gdjydb表*/DL_MSG *msg; /*   insert all records read from from_gdj.txt file into gdjydb */{$ gdjyd_file gdjyd;char je[13],zje[13];int i=0;float je_tot=0.0;FILE *fp;/*处理代扣文件*/fp=fopen("/usr/hcdl/dlmg/server/report/fromgdj1","r");if(fp==NULL){memcpy(msg->rc,PATR_NOFILE,2);   return(0);}$begin work;$lock table gdjydb in exclusive mode;gdjyd.wdtot=0.0;gdjyd.pltot=0.0;gdjyd.gdjtot=0.0;while(!feof(fp)){ memset(gdjyd.cxh,0x00,sizeof(gdjyd_file)); fscanf(fp,"%10c%50c%50c%13c%10c%10c%3c%10c%8c%7c%12c%12c%8c%14c%9c%9c%6c\n",             gdjyd.cxh,gdjyd.yhm,gdjyd.dz,            gdjyd.zh,gdjyd.yhh,gdjyd.cbrq,gdjyd.ydflh,gdjyd.ydflm,            gdjyd.ygzdl,gdjyd.dj,je,            zje,gdjyd.dbch,gdjyd.dbjh,gdjyd.sybd,            gdjyd.bybd,gdjyd.bl); gdjyd.je=atof(je); gdjyd.zje=atof(zje); if(strcmp(gdjyd.cxh,"9999999999")!=0)  {     $insert into gdjydb values ($gdjyd);    if(sqlca.sqlcode!=0)      {       $  rollback work;       memcpy(msg->rc,PATR_INSERT,2);          fclose(fp);       return(0);     }    i++;    je_tot=je_tot+gdjyd.je;   }  else   {    sprintf(je,"%12.2f",je_tot);    sprintf(zje,"%12.2f",gdjyd.zje);    if(i!=atol(gdjyd.bl))      {      printf("笔数不一致\n");      printf("tot=%d\n",i);      printf("999=%ld\n",atol(gdjyd.bl));      }    if(strcmp(je,zje))      {      printf("tot=%s\n",je);      printf("999=%s\n",zje);      printf("金额不一致\n");      }   }    } $commit work; fclose(fp); memcpy(msg->rc,PATR_OK,2); return(1);}proc76(msg)/*将已在供电局缴费数据转入gdjydb表*/DL_MSG *msg; /*   update all records read from from_gdj2.txt file into gdjydb */{ $ long f_date; $ char cxh[11]; $ char db_cxh[11],db_yhm[51],db_cbrq[11]; $ float db_zje,db_je,db_pltot,db_wdtot,db_gdjtot;  $ double skje; $ int money_left,needed_fee,sl; char je[13],zje[13],bs[6]; int i=0; float je_tot=0.0; FILE *fp;/*处理在供电局缴款的用户数据文件*/fp=fopen("/usr/hcdl/dlmg/server/report/fromgdj2","r");if(fp==NULL){  memcpy(msg->rc,PATR_NOFILE,2);     return(0);}while(!feof(fp))  {   fscanf(fp,"%10c%12c%5c\n",cxh,zje,bs);   skje=atof(zje);   if(strcmp(cxh,"9999999999")!=0)   {     $ begin work;    /*    查供电局月度表    */    $ select count(*) into $sl	from gdjydb	where cxh=$cxh and overflag=NOT_OVER;    if(sqlca.sqlcode!=0 && sqlca.sqlcode!=100)  /*   fail to execute sql */    {	       $rollback work;       puts("数据库操作错误");       fclose(fp);       memcpy(msg->rc,PATR_DBERROR,2);          return(0);    }    if(sl==0)      continue;    /*    定义给定查询号电费cursor,一个月份一条记录*/    $declare  gdj_xj cursor for select distinct cxh,yhm,cbrq,zje,                                 pltot,wdtot,gdjtot                            into $db_cxh,$db_yhm,$db_cbrq,$db_zje,                                 $db_pltot,$db_wdtot,$db_gdjtot                             from gdjydb                            where cxh=$cxh and overflag=NOT_OVER;     if(sqlca.sqlcode!=0)  		/*   fail to execute sql */      {       $rollback work;       puts("数据库操作错误");       fclose(fp);       memcpy(msg->rc,PATR_DBERROR,2);          return(0);      }    $open gdj_xj;    if(sqlca.sqlcode<0)       {       $rollback work;        puts("数据库操作错误");        fclose(fp);        memcpy(msg->rc,PATR_DBERROR,2);           return(0);       }    rtoday(&f_date);    /*按月扣电费*/    money_left=skje;/*剩余金额*/    while(1)     {      $fetch gdj_xj;      if(sqlca.sqlcode<0)       {        $rollback work;        puts("数据库操作错误");        fclose(fp);        $close gdj_xj;        $free gdj_xj;        memcpy(msg->rc,PATR_DBERROR,2);           return(0);       }      if(sqlca.sqlcode==SQLNOTFOUND)       {        break;       }      needed_fee=db_zje-db_pltot-db_wdtot-db_gdjtot;/*本月欠费金额*/      if(needed_fee<=0)       {        $rollback work;        puts("收费金额不同步");        fclose(fp);        memcpy(msg->rc,PATR_DBERROR,2);           $close gdj_xj;        $free gdj_xj;        return(0);       }      if(money_left<needed_fee)/*本月只缴部份电费*/       {        /*修改供电局月度表*/        db_wdtot+=money_left;        $update gdjydb set (fse,gdjtot,overrq)=($money_left,                                                 $db_wdtot,$f_date)                       where cxh=$db_cxh and cbrq=$db_cbrq;         if(sqlca.sqlcode!=0)  		/*   fail to execute sql */         {          $rollback work;          $close gdj_xj;          $free gdj_xj;          fclose(fp);          memcpy(msg->rc,PATR_DBERROR,2);             return(0);         }        /*记供电局明细表*/        $insert into  gdjmxb (cxh,cbrq,fse,ydfse,jyrq,jkfs,gyh,zje) values                             ($db_cxh,$db_cbrq,$skje,                              $money_left,$f_date,FROM_GDJ,"88888",$db_zje);        if(sqlca.sqlcode!=0)  		/*   fail to execute sql */         {          $rollback work;          puts("数据库操作错误");          fclose(fp);          $close gdj_xj;          $free gdj_xj;          memcpy(msg->rc,PATR_DBERROR,2);             return(0);         }        money_left=0.0;       }      else/*本月电费结清*/       {        /*修改供电局月度表*/        db_wdtot+=needed_fee;        $update gdjydb set (fse,wdtot,overrq,overflag,dyflag)=                           ($needed_fee,$db_wdtot,$f_date,                            GDJ_OVER,HAS_PRINTED)                       where cxh=$db_cxh and cbrq=$db_cbrq;         if(sqlca.sqlcode!=0)  		/*   fail to execute sql */         {          $rollback work;          puts("数据库操作错误");          fclose(fp);          $close gdj_xj;          $free gdj_xj;          memcpy(msg->rc,PATR_DBERROR,2);             return(0);         }        /*记供电局明细表*/        $insert into  gdjmxb (cxh,cbrq,fse,ydfse,jyrq,jkfs,gyh,zje) values                             ($db_cxh,$db_cbrq,$skje,                              $needed_fee,$f_date,FROM_GDJ,"88888",$db_zje);        if(sqlca.sqlcode!=0)  		/*   fail to execute sql */         {          $rollback work;          puts("数据库操作错误");          fclose(fp);          $close gdj_xj;          $free gdj_xj;          memcpy(msg->rc,PATR_DBERROR,2);             return(0);         }        money_left-=needed_fee;       }       if(money_left==0.0)        break;     }      $close gdj_xj;     $free gdj_xj;       i++;       je_tot=je_tot+skje;     }    else     {      sprintf(je,"%12.2f",je_tot);      sprintf(zje,"%12.2f",skje);      if(i!=atol(bs))       {        printf("笔数不一致\n");        printf("tot=%d\n",i);        printf("999=%ld\n",atol(bs));       }      if(strcmp(je,zje))       {        printf("tot=%s\n",je);        printf("999=%s\n",zje);        printf("金额不一致\n");       }      } }/*end while*/ fclose(fp); memcpy(msg->rc,PATR_OK,2); return(1);}proc77(msg)/*生成批量文件*/DL_MSG *msg;{ $ long f_date; $ char cxh[11]; $ char db_cxh[11],db_yhm[51],db_cbrq[11],db_zh[13]; $ float db_zje,db_je,db_pltot,db_wdtot,db_gdjtot;  $ double skje; $ int money_left,needed_fee,sl; char je[13],zje[13],bs[6]; int i=0; float je_tot=0.0; FILE *fp; fp=fopen("/usr/hcdl/dlmg/server/report/dfto9k","r"); if(fp==NULL) {   memcpy(msg->rc,PATR_NOFILE,2);      return(0); }    $ begin work;    /*    定义给定查询号电费cursor,一个月份一条记录*/    $declare  gdj_pl cursor for select distinct cxh                            into $db_cxh                            from gdjydb;    if(sqlca.sqlcode!=0)  		/*   fail to execute sql */      {       $rollback work;       puts("数据库操作错误");       fclose(fp);       memcpy(msg->rc,PATR_DBERROR,2);          return(0);      }    $open gdj_pl;    if(sqlca.sqlcode<0)       {       $rollback work;        puts("数据库操作错误");        fclose(fp);        memcpy(msg->rc,PATR_DBERROR,2);           return(0);       }    rtoday(&f_date);    while(1)     {      $fetch gdj_pl;      if(sqlca.sqlcode<0)       {        $rollback work;        puts("数据库操作错误");        $close gdj_pl;        $free gdj_pl;        fclose(fp);        memcpy(msg->rc,PATR_DBERROR,2);           return(0);       }      if(sqlca.sqlcode==SQLNOTFOUND)       {        break;       }      $select distinct cxh,cbrq,zje,pltot,wdtot,gdjtot          from gdjydb          where cxh=$db_cxh and overflag=NOT_OVER          into temp tmp_wj;      if(sqlca.sqlcode<0)       {        $rollback work;        puts("数据库操作错误");        $close gdj_pl;        $free gdj_pl;        fclose(fp);        memcpy(msg->rc,PATR_DBERROR,2);           return(0);       }      $select count(*),sum(zje),sum(pltot),sum(wdtot),sum(gdjtot)          into $sl,$db_zje,$db_pltot,$db_wdtot,$db_gdjtot          from tmp_wj;      if(sl!=0)       {        needed_fee=db_zje-db_pltot-db_wdtot-db_gdjtot;/*欠费金额*/        fprintf(fp,"%10s%13s%12.2f",db_cxh,db_zh,needed_fee);       }     } fclose(fp); memcpy(msg->rc,PATR_OK,2); return(1);}proc78(msg)/*接收大机批量结果文件数据转入gdjydb表*/DL_MSG *msg; /*   update all records read from gdjfrom9k.txt file into gdjydb */{ $ long f_date; $ char cxh[11],zh[13]; $ char db_cxh[11],db_yhm[51],db_cbrq[11]; $ float db_zje,db_je,db_pltot,db_wdtot,db_gdjtot;  $ double skje; $ int money_left,needed_fee,sl; char je[13],zje[13],bs[6]; int i=0; float je_tot=0.0; FILE *fp;fp=fopen("/usr/hcdl/dlmg/server/report/dffrom9k","r");if(fp==NULL){  memcpy(msg->rc,PATR_NOFILE,2);     return(0);}while(!feof(fp))  {   fscanf(fp,"%10c%13c%12c\n",cxh,zh,zje);   skje=atof(zje);   if(strcmp(cxh,"9999999999")!=0)   {     $ begin work;    /*    查供电局月度表    */    $ select count(*) into $sl	from gdjydb	where cxh=$cxh and overflag=NOT_OVER;    if(sqlca.sqlcode!=0 && sqlca.sqlcode!=100)  /*   fail to execute sql */    {	       $rollback work;       puts("数据库操作错误");       fclose(fp);       memcpy(msg->rc,PATR_DBERROR,2);          return(0);    }    if(sl==0)      continue;    /*    定义给定查询号电费cursor,一个月份一条记录*/    $declare  gdj_9k cursor for select distinct cxh,yhm,cbrq,zje,                                 pltot,wdtot,gdjtot                            into $db_cxh,$db_yhm,$db_cbrq,$db_zje,                                 $db_pltot,$db_wdtot,$db_gdjtot                             from gdjydb                            where cxh=$cxh and overflag=NOT_OVER;     if(sqlca.sqlcode!=0)  		/*   fail to execute sql */      {       $rollback work;       puts("数据库操作错误");       fclose(fp);       memcpy(msg->rc,PATR_DBERROR,2);          return(0);      }    $open gdj_9k;    if(sqlca.sqlcode<0)       {       $rollback work;        puts("数据库操作错误");        fclose(fp);        memcpy(msg->rc,PATR_DBERROR,2);           return(0);       }    rtoday(&f_date);    /*按月扣电费*/    money_left=skje;/*剩余金额*/    while(1)     {      $fetch gdj_9k;      if(sqlca.sqlcode<0)       {        $rollback work;        puts("数据库操

⌨️ 快捷键说明

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