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

📄 svrf301.ec

📁 一个银行业务的程序
💻 EC
字号:
#include "../incl/serverpub.h"
$include sqlca;

#define 	LEN	39	//报文域数
#define 	COLLEN 	44	//字段数

/*
 *	功能:企业客户基本信息管理
 *	日期:2002/12/24
 *	参数:行为动作,报体
 */

/******************************************************
	功能:Create ID
	日期:2002/12/24
	参数:
******************************************************/
int CreateId(char *pcBankNo,int iFlag,char *pcId,char *pcRetCode)
{
	$char	e_cSql[200];
	$long	e_lCount=0;
	char	cColName[20];

	memset(cColName,0,sizeof(cColName));
	switch(iFlag){
		case 1://enterprise customer ID
			strcpy(cColName,"ent_id");break;
		default:return -1;
	}

        memset(e_cSql,0,sizeof(e_cSql));
        //sprintf(e_cSql,"select %s from banknet where bank_no='%s' for update %s",cColName,pcBankNo,cColName);
        sprintf(e_cSql,"select %s from banknet where bank_no='%s'",cColName,pcBankNo);
#ifdef QDCS
        WriteTest("Select ID=%s\n",e_cSql);
#endif

	$lock table banknet in exclusive mode;
        $prepare Selectid from :e_cSql;
        $declare ID_cur cursor for Selectid;
        if(SQLCODE!=0){
                memcpy(pcRetCode,DBOPERERR,3);
                return -1;
        }
        $open ID_cur;
        if(SQLCODE!=0){
                memcpy(pcRetCode,DBOPERERR,3);
                return -1;
        }
        while(1){
                $fetch count_cur into :e_lCount;
                if(SQLCODE!=0)break;
        }

        $close ID_cur;
        $free ID_cur;

	if(e_lCount==NULL)e_lCount=1;
	sprintf(pcId,"%s%d%05d",pcBankNo,iFlag,e_lCount++);

        memset(e_cSql,0,sizeof(e_cSql));
        sprintf(e_cSql,"update banknet set %s=%d where bank_no='%s'",cColName,e_lCount,pcBankNo);

        $execute immediate :e_cSql;
        if(SQLCODE!=0){
                memcpy(pcRetCode,DBOPERERR,3);
                return -1;
        }
        $unlock table banknet;

	return 0;
}

int ConvertDate(char *pcWorkDate)
{
	char cDate[9];

	memset(cDate,0,sizeof(cDate));
	memcpy(cDate,pcWorkDate,4);
	memcpy(cDate+4,pcWorkDate+5,2);
	memcpy(cDate+6,pcWorkDate+8,2);

	memset(pcWorkDate,0,11);
	memcpy(pcWorkDate,cDate,8);

	return 0;
}

SvrF301(int argc,char *argv[])
{
	int	iColLen[]={16,60,20,4,18,16,18,16,60,100,2,2,8,20,20,20,2,2,16,2,100,100,8,8,30,32,60,3,8,1,1,1,1,1,1,1,1,10,4};
	$char	*pcCol[LEN],e_cId[17],e_cWorkDate[11],e_cBankNo1[11];
	$long	e_lCount=0;
	int	iAct=0,i=0,iRet=0,j=0;
	char	cRetCode[4],cSql[100],cBody[1000],cMax[256];
	time_t 	lTime;
	$char	e_cAlterMan[5],e_cAlterDate[11],e_cCredit[4],e_cCreditDate[11];

	if(argc<5) return 0;
	iAct=atoi(argv[0]);
#ifdef QDCS
	for(i=0;i<argc;i++)
		WriteTest("argv[%d]:%s\n",i,argv[i]);
#endif
	memset(cBody,0,sizeof(cBody));
	for(i=1;i<=argc;i++)strcat(cBody,argv[i]);

	for(i=0;i<LEN;i++){
		pcCol[i]=(char*)malloc(iColLen[i]+1);
		if(pcCol[i]==NULL){
			memset(cRetCode,0,sizeof(cRetCode));
			memcpy(cRetCode,ALLOMEMORY,3);
			for(j=0;j<i;j++)free(pcCol[j]);
			return 0;
		}
		memset(pcCol[i],0,iColLen[i]+1);
		memcpy(pcCol[i],cBody+iRet,iColLen[i]);
		iRet+=iColLen[i];
#ifdef QDCS
	WriteTest("pcCol[%d]=%s,iRet=%d\n",i,pcCol[i],iRet);
#endif
	}

	memset(cRetCode,0,sizeof(cRetCode));
	memset(cSql,0,sizeof(cSql));
	switch(iAct){
		case 1://增加企业客户基本信息
			sprintf(cSql,"enterprise where code='%s'",pcCol[2]);
			iRet=GetCount(cSql,cRetCode);
			if(iRet==-1)break;
			else if(iRet==1){strcpy(cRetCode,EXIST);break;}

			memset(e_cId,0,sizeof(e_cId));
			iRet=CreateId(pcCol[37],1,e_cId,cRetCode);
WriteTest("%s,%d\n",e_cId,iRet);
			if(iRet==-1)break;

			memset(e_cWorkDate,0,sizeof(e_cWorkDate));
			time(&lTime);
			cftime(e_cWorkDate,"%Y/%m/%d",&lTime);

			$insert into enterprise(id ,bank_no ,code ,name ,jurd_man_id ,jurd_man ,finn_man ,finn_man_id ,high_dept ,reg_no ,town_no ,address ,zip ,phone ,loan_card_no ,trade_lic ,ent_type ,regi_capital ,trade_main ,trade_more ,calling ,trade_mode ,found_date ,last_date ,basis_bank ,account ,credit_level ,assess_date ,trade_status ,credit_man ,create_date ,alter_op ,alter_date ,eva_organ ,eva_level ,eva_date ,audit ,certificate
,regulation ,quality ,license ,main_cor ,leads_credit ,serve_level) values(:e_cId,:pcCol[37],:pcCol[2],:pcCol[1],:pcCol[4],:pcCol[5],:pcCol[7],:pcCol[6],:pcCol[8],:pcCol[10],
:pcCol[11],:pcCol[9],:pcCol[12],:pcCol[13],:pcCol[14],:pcCol[15],:pcCol[17],:pcCol[18],:pcCol[20],:pcCol[21],:pcCol[16],:pcCol[19],:pcCol[22],:pcCol[23],:pcCol[24],:pcCol[25],null,null,:pcCol[3],:pcCol[38],
:e_cWorkDate,null,null,:pcCol[26],:pcCol[27],:pcCol[28],:pcCol[29],:pcCol[30],:pcCol[31],:pcCol[32],:pcCol[33],:pcCol[34],:pcCol[35],:pcCol[36]);
WriteTest("%s,%d\n",e_cId,SQLCODE);
                        if(SQLCODE){strcpy(cRetCode,DBOPERERR);break;}
			CreateStruct("通用编号",e_cId);

			strcpy(cRetCode,"000");
			break;
		case 2://
			strcpy(cRetCode,"000");
			break;
		case 3://Query
			memset(e_cId,0,sizeof(e_cId));
			memcpy(e_cId,argv[3],16);
			memset(e_cCredit,0,sizeof(e_cCredit));
			memset(e_cCreditDate,0,sizeof(e_cCreditDate));
			memset(e_cAlterMan,0,sizeof(e_cAlterMan));
			memset(e_cAlterDate,0,sizeof(e_cAlterDate));
			memset(e_cBankNo1,0,sizeof(e_cBankNo1));

			if(atoi(argv[2])==1){//One record
			$select id ,bank_no ,code ,name ,jurd_man_id ,jurd_man ,finn_man ,finn_man_id ,high_dept ,reg_no ,town_no ,address ,zip ,phone ,loan_card_no ,trade_lic ,ent_type ,regi_capital ,trade_main ,trade_more ,calling ,trade_mode ,found_date ,last_date ,basis_bank ,account ,credit_level ,assess_date ,trade_status ,credit_man ,create_date ,alter_op ,alter_date ,eva_organ ,eva_level ,eva_date ,audit,
certificate,regulation,quality,license,main_cor,leads_credit,serve_level,alter_bank_no into 
:pcCol[1],:pcCol[37],:pcCol[2],:pcCol[1],:pcCol[4],:pcCol[5],:pcCol[7],:pcCol[6],:pcCol[8],:pcCol[10],
:pcCol[11],:pcCol[9],:pcCol[12],:pcCol[13],:pcCol[14],:pcCol[15],:pcCol[17],:pcCol[18],:pcCol[20],:pcCol[21],:pcCol[16],:pcCol[19],:pcCol[22],:pcCol[23],:pcCol[24],:pcCol[25],:e_cCredit,:e_cCreditDate,:pcCol[3],:pcCol[38],
:e_cWorkDate,:e_cAlterMan,:e_cAlterDate,:pcCol[26],:pcCol[27],:pcCol[28],:pcCol[29],:pcCol[30],:pcCol[31],:pcCol[32],:pcCol[33],:pcCol[34],:pcCol[35],:pcCol[36],:e_cBankNo1
 from enterprise  where id=e_cId;
			for(i=0;i<LEN;i++)
				strcat(cBody,pcCol[i]);
			ConvertDate(e_cWorkDate);
			ConvertDate(e_cAlterDate);
			ConvertDate(e_cCreditDate);

			strcat(cBody,e_cWorkDate);
			strcat(cBody,e_cCredit);
			strcat(cBody,e_cCreditDate);
			strcat(cBody,e_cBankNo1);
			strcat(cBody,e_cAlterMan);
			strcat(cBody,e_cAlterDate);
#ifdef QDCS
	WriteTest("%s\nlen=%d\n",cBody,strlen(cBody));
#endif
			memset(cMax,0,sizeof(cMax));
			memcpy(cMax,cBody,255);
			CreateStruct("报体1",cMax);
			memset(cMax,0,sizeof(cMax));
			memcpy(cMax,cBody+255,255);
			CreateStruct("报体2",cMax);
			memset(cMax,0,sizeof(cMax));
			memcpy(cMax,cBody+255+255,255);
			CreateStruct("报体3",cMax);
			memset(cMax,0,sizeof(cMax));
			memcpy(cMax,cBody+255+255,strlen(cBody)-765);
			CreateStruct("报体4",cMax);
			}
			strcpy(cRetCode,"000");
			break;
		case 4://
			strcpy(cRetCode,"000");
			break;
	}

	for(i=0;i<LEN;i++)free(pcCol[i]);
	CreateStruct("返回码",cRetCode);
	return 0;
}

⌨️ 快捷键说明

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