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

📄 ysapi.c

📁 unix 下用pro*c tuxedo 开发的东西
💻 C
📖 第 1 页 / 共 5 页
字号:

	flag+=myapi_ReadString(message,stPDSM->dingj,38,44);

	flag+=myapi_ReadString(message,stPDSM->dyzs,45,54);

	flag+=myapi_ReadString(message,stPDSM->dyk,55,65);

	flag+=myapi_ReadString(message,stPDSM->lszs,66,75);

	flag+=myapi_ReadString(message,stPDSM->lsk,76,86);

	flag+=myapi_ReadString(message,stPDSM->yxnf,87,90);

	if( flag!=17 )

		return(-1);

	return(0);

}



/***  convert from message to stPDSJ  ***/



int PDYSSJRcv( char *message,struct stPDYSMsgRec *stPDSJ )

{

	int flag=0;

	flag+=myapi_ReadString(message,stPDSJ->zfjbh,pdnumpoint,pdnumpoint+7);

	flag+=myapi_ReadString(message,stPDSJ->zjfs ,pdnumpoint+8,pdnumpoint+14);

	flag+=myapi_ReadString(message,stPDSJ->lszjfs,pdnumpoint+15,pdnumpoint+21);

	if( flag!=3 )

		return(-1);

	pdnumpoint+=22;		/* it is a full varible */

	return(0);

}



/*** convert from stZDSM to stZDDB ***/



int ZDSMMsgConvert( struct stZDYSMsgHeader stZDSM,struct stZDYSSMDBRec *stZDDB )

{

	trim(stZDSM.yslx);

	trim(stZDSM.wjbh);

	trim(stZDSM.qdqa);

	trim(stZDSM.kq);

	trim(stZDSM.dingj);

	trim(stZDSM.dyzs);

	trim(stZDSM.dyk);

	trim(stZDSM.lszs);

	trim(stZDSM.lsk);

	trim(stZDSM.fssbh);

	trim(stZDSM.bkdh);

	trim(stZDSM.yxnf);

	trim(stZDSM.fsxh);

	strcpy(stZDDB->yslx,stZDSM.yslx);

	strcpy(stZDDB->wjbh,stZDSM.wjbh);

	stZDDB->qdqa = atoi(stZDSM.qdqa);

	strcpy(stZDDB->kq,stZDSM.kq);

	stZDDB->dingj=atof( stZDSM.dingj);

	stZDDB->dyzs =atol(stZDSM.dyzs);

	stZDDB->dyk  =atof(stZDSM.dyk);

	stZDDB->lszs =atol(stZDSM.lszs);

	stZDDB->lsk  =atof(stZDSM.lsk);

	strcpy(stZDDB->fssbh,stZDSM.fssbh);

	strcpy(stZDDB->bkdh,stZDSM.bkdh);

	stZDDB->nf=atoi(stZDSM.yxnf);

	stZDDB->xh =atol(stZDSM.fsxh);

	return(0);

}



/*** convert from stPDSM to stPDDB ***/



int PDSMMsgConvert(struct stPDYSMsgHeader stPDSM,struct stPDYSSMDBRec *stPDDB )

{

	trim(stPDSM.yslx);

	trim(stPDSM.wjbh);

	trim(stPDSM.qdqa);

	trim(stPDSM.qdqb);

	trim(stPDSM.zdqa);

	trim(stPDSM.zdqb);

	trim(stPDSM.kq);

	trim(stPDSM.dingj);

	trim(stPDSM.dyzs);

	trim(stPDSM.dyk);

	trim(stPDSM.lszs);

	trim(stPDSM.lsk);

	trim(stPDSM.fssbh);

	trim(stPDSM.bkdh);

	trim(stPDSM.yxnf);

	trim(stPDSM.fsxh);

	strcpy(stPDDB->bkdh,stPDSM.bkdh);

	strcpy(stPDDB->yslx,stPDSM.yslx);

	strcpy(stPDDB->wjbh,stPDSM.wjbh);

	stPDDB->qdqa = atoi(stPDSM.qdqa);

	stPDDB->qdqb = atoi(stPDSM.qdqb);

	if(stPDSM.zdqa[0]!='\0')
		stPDDB->zdqa = atoi(stPDSM.zdqa);

	if(stPDSM.zdqb[0]!='\0')
		stPDDB->zdqb = atoi(stPDSM.zdqb);

	strcpy(stPDDB->kq,stPDSM.kq);

	stPDDB->dingj=atof( stPDSM.dingj);

	stPDDB->dyzs =atol(stPDSM.dyzs);

	stPDDB->dyk  =atof(stPDSM.dyk);

	stPDDB->lszs =atol(stPDSM.lszs);

	stPDDB->lsk  =atof(stPDSM.lsk);

	strcpy(stPDDB->fssbh,stPDSM.fssbh);

	stPDDB->nf=atoi(stPDSM.yxnf);

	stPDDB->xh =atol(stPDSM.fsxh);

	return(0);

}



/*** convert to stZDSJDB ***/



int ZDSJMsgConvert(struct stZDYSMsgHeader stZDSM,struct stZDYSMsgRec stZDSJ,struct stZDYSDBRec *stZDSJDB )

{

	trim(stZDSJ.yffs);

	trim(stZDSJ.qzlss);

	trim(stZDSJ.zfjbh);

	trim(stZDSM.fssbh);

	trim(stZDSM.fsxh);

	stZDSJDB->yffs =atol(stZDSJ.yffs);

	stZDSJDB->qzlss=atol(stZDSJ.qzlss);

/*	stZDSJDB->zfjbh=atol(stZDSJ.zfjbh);
*/
	strcpy(stZDSJDB->zfjbh,stZDSJ.zfjbh);
	strcpy(stZDSJDB->sjbh,stZDSM.fssbh);

	stZDSJDB->xh =atol(stZDSM.fsxh);

	return(0);

}



/*** convert to stPDSJDB ***/



int PDSJMsgConvert(struct stPDYSMsgHeader stPDSM,struct stPDYSMsgRec stPDSJ,struct stPDYSDBRec *stPDSJDB )

{

	trim(stPDSJ.zjfs);

	trim(stPDSJ.lszjfs);

	trim(stPDSJ.zfjbh);

	trim(stPDSM.fssbh);

	trim(stPDSM.fsxh);

	stPDSJDB->zjfs =atol(stPDSJ.zjfs);

	stPDSJDB->lszjfs=atol(stPDSJ.lszjfs);

/*	stPDSJDB->zfjbh=atol(stPDSJ.zfjbh);
*/
	strcpy(stPDSJDB->zfjbh,stPDSJ.zfjbh);
	strcpy(stPDSJDB->sjbh,stPDSM.fssbh);

	stPDSJDB->xh =atol(stPDSM.fsxh);

	return(0);

}



/*** insert the zd data from MQ to database ***/



int ZDYSRcvRecDB( char *message,long int msglen )

{

	struct stZDYSMsgHeader stZDSM;

	struct stZDYSMsgRec    stZDSJ;

	struct stZDYSSMDBRec   stZDSMDB;

	struct stZDYSDBRec     stZDSJDB;

	struct stZDYSSM_id     ZDid;

	int count_rec;

	int i;

	int flag;

	short qzlss_id;

	

	count_rec=(msglen-ZDSM_MSG_LEN)/YSSJ_MSG_LEN;

	flag=ZDYSSMRcv( message,&stZDSM );

	if( flag!=0 )

	{

		return(-1);

	}

	ZDSMMsgConvert(stZDSM,&stZDSMDB);

/*	printf(",%s,%s,%d,%s,\n",stZDSMDB.yslx,stZDSMDB.wjbh,stZDSMDB.qdqa,stZDSMDB.kq);

	printf(",%.2f,%d,%.2f,%d\n",stZDSMDB.dingj,stZDSMDB.dyzs,stZDSMDB.dyk,stZDSMDB.lszs);

	printf(",%.2f,%s,%s,%d,%ld\n",stZDSMDB.lsk,stZDSMDB.fssbh,stZDSMDB.bkdh,stZDSMDB.nf,stZDSMDB.xh);

*/	ERROR=0;

	/* EXEC SQL WHENEVER SQLERROR DO sqlerror(); */ 



/*	EXEC SQL INSERT INTO t_jszdyssm VALUES 

		(:stZDSMDB.yslx,

		 :stZDSMDB.wjbh,

		 :stZDSMDB.qdqa :ZDid.qdqa,

		 :stZDSMDB.kq,

		 :stZDSMDB.dingj :ZDid.dingj,

		 :stZDSMDB.dyzs  :ZDid.dyzs,

		 :stZDSMDB.dyk   :ZDid.dyk,

		 :stZDSMDB.lszs  :ZDid.lszs,

		 :stZDSMDB.lsk   :ZDid.lsk,

		 :stZDSMDB.fssbh,

		 :stZDSMDB.bkdh,

		 :stZDSMDB.nf    :ZDid.nf,

		 :stZDSMDB.xh);

*/

	/* EXEC SQL INSERT INTO t_jszdyssm VALUES 

		(:stZDSMDB.yslx,

		 :stZDSMDB.wjbh,

		 :stZDSMDB.qdqa ,

		 :stZDSMDB.kq,

		 :stZDSMDB.dingj ,

		 :stZDSMDB.dyzs  ,

		 :stZDSMDB.dyk   ,

		 :stZDSMDB.lszs  ,

		 :stZDSMDB.lsk   ,

		 :stZDSMDB.fssbh,

		 :stZDSMDB.bkdh,

		 :stZDSMDB.nf    ,

		 :stZDSMDB.xh); */ 

{
 struct sqlexd sqlstm;

 sqlstm.sqlvsn = 8;
 sqlstm.arrsiz = 13;
 sqlstm.stmt = "insert into t_jszdyssm values (:b0,:b1,:b2,:b3,:b4,:b5,:b6,\
:b7,:b8,:b9,:b10,:b11,:b12)";
 sqlstm.iters = (unsigned int  )1;
 sqlstm.offset = (unsigned int  )112;
 sqlstm.cud = sqlcud0;
 sqlstm.sqlest = (unsigned char  *)&sqlca;
 sqlstm.sqlety = (unsigned short)0;
 sqlstm.sqhstv[0] = (unsigned char  *)(stZDSMDB.yslx);
 sqlstm.sqhstl[0] = (unsigned int  )2;
 sqlstm.sqindv[0] = (         short *)0;
 sqlstm.sqharm[0] = (unsigned int  )0;
 sqlstm.sqhstv[1] = (unsigned char  *)(stZDSMDB.wjbh);
 sqlstm.sqhstl[1] = (unsigned int  )3;
 sqlstm.sqindv[1] = (         short *)0;
 sqlstm.sqharm[1] = (unsigned int  )0;
 sqlstm.sqhstv[2] = (unsigned char  *)&(stZDSMDB.qdqa);
 sqlstm.sqhstl[2] = (unsigned int  )4;
 sqlstm.sqindv[2] = (         short *)0;
 sqlstm.sqharm[2] = (unsigned int  )0;
 sqlstm.sqhstv[3] = (unsigned char  *)(stZDSMDB.kq);
 sqlstm.sqhstl[3] = (unsigned int  )7;
 sqlstm.sqindv[3] = (         short *)0;
 sqlstm.sqharm[3] = (unsigned int  )0;
 sqlstm.sqhstv[4] = (unsigned char  *)&(stZDSMDB.dingj);
 sqlstm.sqhstl[4] = (unsigned int  )4;
 sqlstm.sqindv[4] = (         short *)0;
 sqlstm.sqharm[4] = (unsigned int  )0;
 sqlstm.sqhstv[5] = (unsigned char  *)&(stZDSMDB.dyzs);
 sqlstm.sqhstl[5] = (unsigned int  )4;
 sqlstm.sqindv[5] = (         short *)0;
 sqlstm.sqharm[5] = (unsigned int  )0;
 sqlstm.sqhstv[6] = (unsigned char  *)&(stZDSMDB.dyk);
 sqlstm.sqhstl[6] = (unsigned int  )4;
 sqlstm.sqindv[6] = (         short *)0;
 sqlstm.sqharm[6] = (unsigned int  )0;
 sqlstm.sqhstv[7] = (unsigned char  *)&(stZDSMDB.lszs);
 sqlstm.sqhstl[7] = (unsigned int  )4;
 sqlstm.sqindv[7] = (         short *)0;
 sqlstm.sqharm[7] = (unsigned int  )0;
 sqlstm.sqhstv[8] = (unsigned char  *)&(stZDSMDB.lsk);
 sqlstm.sqhstl[8] = (unsigned int  )4;
 sqlstm.sqindv[8] = (         short *)0;
 sqlstm.sqharm[8] = (unsigned int  )0;
 sqlstm.sqhstv[9] = (unsigned char  *)(stZDSMDB.fssbh);
 sqlstm.sqhstl[9] = (unsigned int  )3;
 sqlstm.sqindv[9] = (         short *)0;
 sqlstm.sqharm[9] = (unsigned int  )0;
 sqlstm.sqhstv[10] = (unsigned char  *)(stZDSMDB.bkdh);
 sqlstm.sqhstl[10] = (unsigned int  )8;
 sqlstm.sqindv[10] = (         short *)0;
 sqlstm.sqharm[10] = (unsigned int  )0;
 sqlstm.sqhstv[11] = (unsigned char  *)&(stZDSMDB.nf);
 sqlstm.sqhstl[11] = (unsigned int  )4;
 sqlstm.sqindv[11] = (         short *)0;
 sqlstm.sqharm[11] = (unsigned int  )0;
 sqlstm.sqhstv[12] = (unsigned char  *)&(stZDSMDB.xh);
 sqlstm.sqhstl[12] = (unsigned int  )4;
 sqlstm.sqindv[12] = (         short *)0;
 sqlstm.sqharm[12] = (unsigned int  )0;
 sqlstm.sqphsv = sqlstm.sqhstv;
 sqlstm.sqphsl = sqlstm.sqhstl;
 sqlstm.sqpind = sqlstm.sqindv;
 sqlstm.sqparm = sqlstm.sqharm;
 sqlstm.sqparc = sqlstm.sqharc;
 sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
 if (sqlca.sqlcode < 0) sqlerror();
}



	if( ERROR!=0 )

	{

		ERROR=0;

		ProcessError(LOG_ERROR,"PCS_RCV_YS: error when insert into yssm!",END);
		return(-1);

	}

	

	for( i=0;i<count_rec;i++ )

	{

		ZDYSSJRcv( message,&stZDSJ );

		ZDSJMsgConvert(stZDSM,stZDSJ,&stZDSJDB);

		ERROR=0;

		/* EXEC SQL WHENEVER SQLERROR DO sqlerror(); */ 


/*		EXEC SQL INSERT INTO t_jszdyssj VALUES (

			:stZDSJDB.yffs,:stZDSJDB.qzlss :qzlss_id,

			:stZDSJDB.zfjbh,:stZDSJDB.sjbh,:stZDSJDB.xh);

*/

		/* EXEC SQL INSERT INTO t_jszdyssj (yffs,zfjbh,sjbh,jsxh) VALUES (

			:stZDSJDB.yffs,
			:stZDSJDB.zfjbh,:stZDSJDB.sjbh,:stZDSJDB.xh); */ 

{
  struct sqlexd sqlstm;

  sqlstm.sqlvsn = 8;
  sqlstm.arrsiz = 13;
  sqlstm.stmt = "insert into t_jszdyssj(yffs,zfjbh,sjbh,jsxh) values (:b0,:\
b1,:b2,:b3)";
  sqlstm.iters = (unsigned int  )1;
  sqlstm.offset = (unsigned int  )178;
  sqlstm.cud = sqlcud0;
  sqlstm.sqlest = (unsigned char  *)&sqlca;
  sqlstm.sqlety = (unsigned short)0;
  sqlstm.sqhstv[0] = (unsigned char  *)&(stZDSJDB.yffs);
  sqlstm.sqhstl[0] = (unsigned int  )4;
  sqlstm.sqindv[0] = (         short *)0;
  sqlstm.sqharm[0] = (unsigned int  )0;
  sqlstm.sqhstv[1] = (unsigned char  *)(stZDSJDB.zfjbh);
  sqlstm.sqhstl[1] = (unsigned int  )9;
  sqlstm.sqindv[1] = (         short *)0;
  sqlstm.sqharm[1] = (unsigned int  )0;
  sqlstm.sqhstv[2] = (unsigned char  *)(stZDSJDB.sjbh);
  sqlstm.sqhstl[2] = (unsigned int  )3;
  sqlstm.sqindv[2] = (         short *)0;
  sqlstm.sqharm[2] = (unsigned int  )0;
  sqlstm.sqhstv[3] = (unsigned char  *)&(stZDSJDB.xh);
  sqlstm.sqhstl[3] = (unsigned int  )4;
  sqlstm.sqindv[3] = (         short *)0;
  sqlstm.sqharm[3] = (unsigned int  )0;
  sqlstm.sqphsv = sqlstm.sqhstv;
  sqlstm.sqphsl = sqlstm.sqhstl;
  sqlstm.sqpind = sqlstm.sqindv;
  sqlstm.sqparm = sqlstm.sqharm;
  sqlstm.sqparc = sqlstm.sqharc;
  sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
  if (sqlca.sqlcode < 0) sqlerror();
}







		if( ERROR!=0 )

		{

			ERROR=0;

			ProcessError(LOG_ERROR,"PCS_RCV_YS: error when insert into yssj!",END);
			return(-1);

		}

	}

	return(0);

}



/***  insert pd data to database  ***/



int PDYSRcvRecDB( char *message,long int msglen )

{

	struct stPDYSMsgHeader stPDSM;

	struct stPDYSMsgRec    stPDSJ;

	struct stPDYSSMDBRec   stPDSMDB;

	struct stPDYSDBRec     stPDSJDB;

	struct stPDYSSM_id     PDid;

	int count_rec;

	int i;

	int flag;

	short lszjfs_id;

	

	count_rec=(msglen-PDSM_MSG_LEN)/YSSJ_MSG_LEN;

	flag=PDYSSMRcv( message,&stPDSM );

	if( flag!=0 )

	{

⌨️ 快捷键说明

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