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

📄 ys1api.c

📁 unix 下用pro*c tuxedo 开发的东西
💻 C
📖 第 1 页 / 共 4 页
字号:
 sqlstm.sqindv[9] = (         short *)&lsk_id;
 sqlstm.sqharm[9] = (unsigned int  )0;
 sqlstm.sqhstv[10] = (unsigned char  *)&(st.nf);
 sqlstm.sqhstl[10] = (unsigned int  )4;
 sqlstm.sqindv[10] = (         short *)&nf_id;
 sqlstm.sqharm[10] = (unsigned int  )0;
 sqlstm.sqhstv[11] = (unsigned char  *)&v_fsxh;
 sqlstm.sqhstl[11] = (unsigned int  )4;
 sqlstm.sqindv[11] = (         short *)0;
 sqlstm.sqharm[11] = (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;
		return(-1);
	}
	return(0);
}

/***  convert yssj to struct  ***/

void GetZDYSFileRec( char *cLine,struct stZDYSFileRec *ZDFile )
{
	trim(cLine);
	ZDFile->yffs=atol(cLine);
}

/*** convert yssj to stZDYSDBRec from yssjfile and yssmfile  ***/

int ConvZDYS( long int v_fsxh,char *Zzfj,struct stZDYSFileRec ZDFile,struct stZDYSDBRec *ZDDBRec )
{
	ZDDBRec->xh=v_fsxh;
	strcpy(ZDDBRec->zfjbh,Zzfj);
	ZDDBRec->yffs=ZDFile.yffs;
	ZDDBRec->qzlss=0;
	return(0);
}

/***  insert yssj to database  ***/

int InsertSndZDYS(struct stZDYSDBRec ZDDBRec)
{
	short qzlss_id;
	ERROR=0;
	/* EXEC SQL WHENEVER SQLERROR DO sqlerror(); */ 

	/* EXEC SQL INSERT INTO t_fszdyssj (yffs,zfjbh,fsxh) VALUES 
		(:ZDDBRec.yffs,
/o		 :ZDDBRec.qzlss :qzlss_id,
o/		 :ZDDBRec.zfjbh,
		 :ZDDBRec.xh); */ 

{
 struct sqlexd sqlstm;

 sqlstm.sqlvsn = 8;
 sqlstm.arrsiz = 12;
 sqlstm.stmt = "insert into t_fszdyssj(yffs,zfjbh,fsxh) values (:b0,:b1,:b2)";
 sqlstm.iters = (unsigned int  )1;
 sqlstm.offset = (unsigned int  )242;
 sqlstm.cud = sqlcud0;
 sqlstm.sqlest = (unsigned char  *)&sqlca;
 sqlstm.sqlety = (unsigned short)0;
 sqlstm.sqhstv[0] = (unsigned char  *)&(ZDDBRec.yffs);
 sqlstm.sqhstl[0] = (unsigned int  )4;
 sqlstm.sqindv[0] = (         short *)0;
 sqlstm.sqharm[0] = (unsigned int  )0;
 sqlstm.sqhstv[1] = (unsigned char  *)(ZDDBRec.zfjbh);
 sqlstm.sqhstl[1] = (unsigned int  )9;
 sqlstm.sqindv[1] = (         short *)0;
 sqlstm.sqharm[1] = (unsigned int  )0;
 sqlstm.sqhstv[2] = (unsigned char  *)&(ZDDBRec.xh);
 sqlstm.sqhstl[2] = (unsigned int  )4;
 sqlstm.sqindv[2] = (         short *)0;
 sqlstm.sqharm[2] = (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;
		return(-1);
	}
	CHECK_TOTAL_YSSJ+=ZDDBRec.yffs;
	return(0);
}

/***  insert a record of yssm and yssj into database  ***/

int RecDBSingleZDYS( struct stZDYSSMDBRec ZDYSSMDBRec,char *Filename,long int v_fsxh,char *cLine )
{
	int flag;
	int fsfbh;
	char datatype='1';
	char tempstring[MID_NUM];
	char Zzfj[SHORT_NUM];
	struct stZDYSFileRec ZDFile;
	struct stZDYSDBRec ZDDBRec;
	int i,j,k;
	int zfCount;
	char wjbh[SHORT_NUM];
	int retcode=0;
	flag=CreateSndLogAndHZRec( datatype,ZDYSSMDBRec.jsfbh,v_fsxh );
	if( flag!=1 )
	{
		ProcessError(LOG_ERROR,"PCS_Snd_YS1: error when use function ","CreateSndLogAndHZRec");
		return(-1);
	}
	
	for(i=0,j=0;i<10;i++)
	{
		if(Filename[i]=='.')
		{
			wjbh[j]=Filename[i+1];
			j++;
			if( Filename[i+2]!='\0' )
			{
				wjbh[j]=Filename[i+2];
				j++;
			}
			wjbh[j]='\0';
			break;
		}
	}	
	flag=InsertSndZDYSSM( ZDYSSMDBRec, v_fsxh );
	if( flag!=0 )
	{
		ProcessError(LOG_ERROR,"PCS_Snd_YS1: error when insert zdyssm into database",END);
		return(-1);
	}
	
	zfCount=0;
	/* EXEC SQL VAR Zzfj IS string; */ 

	/* EXEC SQL DECLARE cur_zfj CURSOR FOR 
		SELECT zfjbh FROM t_zfj WHERE sjbh=:ZDYSSMDBRec.fsfbh and yxnf=:ZDYSSMDBRec.nf ORDER BY zfjxh; */ 

	/* EXEC SQL SELECT count(*) INTO :zfCount FROM t_zfj WHERE sjbh=:ZDYSSMDBRec.fsfbh AND yxnf=:ZDYSSMDBRec.nf; */ 

{
 struct sqlexd sqlstm;

 sqlstm.sqlvsn = 8;
 sqlstm.arrsiz = 12;
 sqlstm.stmt = "select count(*)  into :b0  from t_zfj where (sjbh=:b1 and yx\
nf=:b2)";
 sqlstm.iters = (unsigned int  )1;
 sqlstm.offset = (unsigned int  )268;
 sqlstm.selerr = (unsigned short)1;
 sqlstm.cud = sqlcud0;
 sqlstm.sqlest = (unsigned char  *)&sqlca;
 sqlstm.sqlety = (unsigned short)0;
 sqlstm.sqhstv[0] = (unsigned char  *)&zfCount;
 sqlstm.sqhstl[0] = (unsigned int  )4;
 sqlstm.sqindv[0] = (         short *)0;
 sqlstm.sqharm[0] = (unsigned int  )0;
 sqlstm.sqhstv[1] = (unsigned char  *)(ZDYSSMDBRec.fsfbh);
 sqlstm.sqhstl[1] = (unsigned int  )3;
 sqlstm.sqindv[1] = (         short *)0;
 sqlstm.sqharm[1] = (unsigned int  )0;
 sqlstm.sqhstv[2] = (unsigned char  *)&(ZDYSSMDBRec.nf);
 sqlstm.sqhstl[2] = (unsigned int  )4;
 sqlstm.sqindv[2] = (         short *)0;
 sqlstm.sqharm[2] = (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( zfCount==0 )
	{
		ProcessError(LOG_ERROR,"PCS_Snd_YS1: error the number of zfj is zero, please check it",END);
		return(-1);
	}
	j=0;
	if( Filename[1]=='Z'&&Filename[2]=='Z' )
	{
		/* EXEC SQL OPEN cur_zfj; */ 

{
  struct sqlexd sqlstm;

  sqlstm.sqlvsn = 8;
  sqlstm.arrsiz = 12;
  sqlstm.stmt = sq0012;
  sqlstm.iters = (unsigned int  )1;
  sqlstm.offset = (unsigned int  )294;
  sqlstm.cud = sqlcud0;
  sqlstm.sqlest = (unsigned char  *)&sqlca;
  sqlstm.sqlety = (unsigned short)0;
  sqlstm.sqhstv[0] = (unsigned char  *)(ZDYSSMDBRec.fsfbh);
  sqlstm.sqhstl[0] = (unsigned int  )3;
  sqlstm.sqindv[0] = (         short *)0;
  sqlstm.sqharm[0] = (unsigned int  )0;
  sqlstm.sqhstv[1] = (unsigned char  *)&(ZDYSSMDBRec.nf);
  sqlstm.sqhstl[1] = (unsigned int  )4;
  sqlstm.sqindv[1] = (         short *)0;
  sqlstm.sqharm[1] = (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();
}


		for( i=0;i<zfCount;i++ )
		{	
			if( cLine[j]=='\0' )
			{
				ProcessError(LOG_ERROR,"PCS_Snd_YS1: error in zdyssj, the number of yffs not enough",END);
				return(-1);
			}
			for( k=0;; )
			{
				if(cLine[j]==',')
				{
					tempstring[k]='0';
					tempstring[k+1]='\0';
					j++;
					break;
				}
				else 
				{
					tempstring[k]=cLine[j];
					k++;
					if( cLine[j+1]==',' )
					{
						tempstring[k]='\0';
						j+=2;
						break;
					}
					else j++;
				}
			}
			GetZDYSFileRec( tempstring,&ZDFile );
			/* EXEC SQL FETCH cur_zfj INTO :Zzfj; */ 

{
   struct sqlexd sqlstm;

   sqlstm.sqlvsn = 8;
   sqlstm.arrsiz = 12;
   sqlstm.iters = (unsigned int  )1;
   sqlstm.offset = (unsigned int  )316;
   sqlstm.cud = sqlcud0;
   sqlstm.sqlest = (unsigned char  *)&sqlca;
   sqlstm.sqlety = (unsigned short)0;
   sqlstm.sqhstv[0] = (unsigned char  *)Zzfj;
   sqlstm.sqhstl[0] = (unsigned int  )10;
   sqlstm.sqindv[0] = (         short *)0;
   sqlstm.sqharm[0] = (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();
}


			ConvZDYS( v_fsxh,Zzfj,ZDFile,&ZDDBRec );
			flag=InsertSndZDYS( ZDDBRec );
			if( flag!=0 )
			{
				ProcessError(LOG_ERROR,"PCS_Snd_YS1: error when use function ","InsertSndZDYS");
				return(-1);
			}
		}
		/* EXEC SQL CLOSE cur_zfj; */ 

{
  struct sqlexd sqlstm;

  sqlstm.sqlvsn = 8;
  sqlstm.arrsiz = 12;
  sqlstm.iters = (unsigned int  )1;
  sqlstm.offset = (unsigned int  )334;
  sqlstm.cud = sqlcud0;
  sqlstm.sqlest = (unsigned char  *)&sqlca;
  sqlstm.sqlety = (unsigned short)0;
  sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
  if (sqlca.sqlcode < 0) sqlerror();
}


	}
	else if (Filename[1]=='Z'&&Filename[2]=='J' )
	{
		for( i=0,j=0;i<MAX_LINE_LEN;i++ )
		{
			for( k=0;k<SHORT_NUM;j++,k++ )
			{
				if( cLine[j]==',' )
				{
					ProcessError(LOG_ERROR,"PCS_Snd_YS1: error in zdyssj, ',' at the begin of a line or connected with another ','",END);
					return(-1);
				}
				tempstring[k]=cLine[j];
				if( cLine[j+1]==','||cLine[j+1]=='\n' )
					break;
			}
			k++;
			j+=2;
			tempstring[k]='\0';
			ZDDBRec.xh=v_fsxh;
			strcpy(ZDDBRec.zfjbh,tempstring);
			
			for( k=0;k<SHORT_NUM;j++,k++ )
			{
				if( cLine[j]==',' )
				{
					ProcessError(LOG_ERROR,"PCS_Snd_YS1: error in zdyssj, ',' connected with another ','",END);
					return(-1);
				}
				if( cLine[j]=='\n'||cLine[j]==EOF )
				{
					ProcessError(LOG_ERROR,"PCS_Snd_YS1: error in zdyssj, zfjbh without its yffs",END);
					return(-1);
				}
				tempstring[k]=cLine[j];
				if( cLine[j+1]==','||cLine[j+1]=='\n' )
					break;
			}
			k++;
			j+=2;
			tempstring[k]='\0';
			trim(tempstring);
			ZDDBRec.yffs=atoi(tempstring);
/*			ZDDBRec.qzlss=0;
*/			flag=InsertSndZDYS( ZDDBRec );
			if( flag!=0 )
			{
				ProcessError(LOG_ERROR,"PCS_Snd_YS1: error when use function ","InsertSndZDYS");
				return(-1);
			}
			if( cLine[j]=='\0'||cLine[j]==EOF )
			{
				return(0);
			}
			
		}
		
	}
	return(0);
}


/*
//Process ZDYS data convert, put them into DB, send the data
//The divided character is ','
*/
int ConvRecDBZDYS( char *cLine,struct stZDYSSMDBRec ZDYSSMDB,char *buf2,char *Filename,int *n )
{
	int  flag,i;
	long int v_fsxh;
	int  retcode=0;
	
	/* EXEC SQL SELECT s_fsxh.NEXTVAL INTO :v_fsxh FROM SYS.DUAL ; */ 

{
 struct sqlexd sqlstm;

 sqlstm.sqlvsn = 8;
 sqlstm.arrsiz = 12;
 sqlstm.stmt = "select s_fsxh.nextval  into :b0  from SYS.DUAL ";
 sqlstm.iters = (unsigned int  )1;
 sqlstm.offset = (unsigned int  )348;
 sqlstm.selerr = (unsigned short)1;
 sqlstm.cud = sqlcud0;
 sqlstm.sqlest = (unsigned char  *)&sqlca;
 sqlstm.sqlety = (unsigned short)0;
 sqlstm.sqhstv[0] = (unsigned char  *)&v_fsxh;
 sqlstm.sqhstl[0] = (unsigned int  )4;
 sqlstm.sqindv[0] = (         short *)0;
 sqlstm.sqharm[0] = (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();
}


	myapi_ReadALine(cLine,buf2,n);
	flag=RecDBSingleZDYS( ZDYSSMDB, Filename,v_fsxh,cLine );
	if( flag!=0 )
	{
		ProcessError(LOG_ERROR,"PCS_Snd_YS1: error when insert yssm and yssj into database",END);
		return(-1);
	}
	UpdateSndLogRecStatus( v_fsxh );
	return(0);
}



/*Fill in the struct: stPDYSSMDBRec with the content of a stYSSMFileRec struct,*/
/*Add and modify some components of the struct during the process.	       */
/*This procedure should not fail.				       */
int myapi_ConvertToPDYSSMDBRec(struct stYSSMFileRec stYSSMFilePoint,struct stPDYSSMDBRec *stPDYSSMDBPoint,char *FileName )
{
	char temp_string[STR_LEN];
	char datatype;
	char *temp_Str;
	int flag;
	if(FileName[6]=='\0')	/* Get xh of the struct */
		myapi_ReadString(FileName,temp_string,5,5);
	else
		myapi_ReadString(FileName,temp_string,5,6);
		
	strcpy(stPDYSSMDBPoint->wjbh,temp_string);
	strcpy(stPDYSSMDBPoint->bkdh,stYSSMFilePoint.bkdh);
	myapi_ReadString(FileName,temp_string,0,3);
	if( temp_string[0]=='B'&&temp_string[1]=='P'&&temp_string[2]=='Z' )
		datatype=BPZ;

⌨️ 快捷键说明

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