?? svrf301.ec
字號:
#include "../incl/serverpub.h"
$include sqlca;
#define LEN 39 //報文域數(shù)
#define COLLEN 44 //字段數(shù)
/*
* 功能:企業(yè)客戶基本信息管理
* 日期:2002/12/24
* 參數(shù):行為動作,報體
*/
/******************************************************
功能:Create ID
日期:2002/12/24
參數(shù):
******************************************************/
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://增加企業(yè)客戶基本信息
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 + -