📄 cms505.sqc
字号:
/******************************************************************** ** 源码文件名称 : cms505.SQC ** 所属子系统 : CMS ** 当前文件版本 : 4.0.0.0 ** 作者 : UCCB ALex ** 版本创建日期 : 2004/10/12 ** 功能描述 : 生成制卡文件磁盘处理子交易 ** 修改记录 : ** 修改人 修改日期 修改日期*********************************************************************/#include "code.h"#include "attrdef.h"#include "sysdef.h"#include "pubcom.h"#include "cmscode.h"#include <stdio.h>#include "cmsmkfile.h"#include "cmscardinfo.h"#include "cmsacctm.h"EXEC SQL INCLUDE SQLCA;int cmsGenMakeFileDiskPro( PUBCOM *pstPubcom ){ /*定义局部变量*/ struct cmsmkfile stCmsMkFile ; struct cmscardinfo stCmsCardInfo ; struct cmsacctm stCmsAcctM ; char acTranDate[DATE_LEN+1]; char acTranDate8[DATE_LEN-1]; char acMakeDate[DATE_LEN+1]; char acFileName[FUNC_NAME_LEN]; FILE *pRfp ; long lMakeReqNo ; int iInt=0; char acBuf[100]; strcpy( g_acTrcMsg, "子交易: 生成制卡文件磁盘处理开始..."); TRCLOG4 /* 初始化 */ memset( &stCmsMkFile, 0x00, sizeof( struct cmsmkfile ) ); memset( &stCmsCardInfo, 0x00, sizeof( struct cmscardinfo ) ); memset( &stCmsAcctM , 0x00, sizeof( struct cmsacctm ) ); memset( acTranDate , 0x00, sizeof( acTranDate ) ); memset( acMakeDate , 0x00, sizeof( acMakeDate ) ); memset( acTranDate8 , 0x00, sizeof( acTranDate8 ) ); memset( acFileName , 0x00, sizeof( acFileName ) ); /* 取数据字典值 */ getstring( "MakeDate", acMakeDate ); lMakeReqNo=pstPubcom->lSerSeqNo; getstring( "MakeDate", stCmsMkFile.makedate ); getlong ( "SerSeqNo", &stCmsMkFile.serseqno ); strcpy ( stCmsMkFile.cardcenterbrc, CARDBRNO ); /*取文件名*/ sprintf( acFileName, "%s%06d.txt",pstPubcom->acTranDate8+6,pstPubcom->lSerSeqNo ); pRfp = (FILE *)BeginFile( pstPubcom, acFileName ); if ( pRfp == NULL ) { strcpy( g_acRspMsg, "打开文件句柄出错!" ); pubCrtRspInfo( ); ERRLOG return FAILED; } /* 从制卡文件表获取纪录并锁住纪录 */ pubStoVCmsmkfile( &stCmsMkFile ); sprintf( g_acTrcMsg, "makedate[%s]serseqno[%ld]centerbrc[%s]", cmsmkfile_makedate,cmsmkfile_serseqno,cmsmkfile_cardcenterbrc ); TRCLOG3 EXEC SQL DECLARE MkFile_l_cur CURSOR FOR SELECT * FROM CMSMKFILE WHERE makedate = :cmsmkfile_makedate AND serseqno = :cmsmkfile_serseqno AND cardcenterbrc = :cmsmkfile_cardcenterbrc AND makediskflg = NOMAKEFILE ORDER BY cardno; SQLOPENCUR(MkFile_l_cur,"MkFile_l_cur") /* 打开游表出错 */ if ( SQLCODE ) { strcpy( g_acRspCode, "CMS111" ); pubCrtRspInfo( "cmsmkfile", SQLCODE ); ERRLOG fclose( pRfp ); return FAILED; } while( TRUE ) { pubInitCmsmkfile(); EXEC SQL FETCH MkFile_l_cur INTO R_CMSMKFILE ; /* 取游表出错 */ if ( SQLCODE && SQLCODE != SQLNOTFOUND ) { strcpy( g_acRspCode, "CMS112" ); pubCrtRspInfo( "cmsmkfile", SQLCODE ); ERRLOG fclose( pRfp ); SQLCLOSECUR(MkFile_l_cur,"MkFile_l_cur") return FAILED; } if ( SQLCODE==SQLNOTFOUND ) { sprintf( g_acTrcMsg, "SQLCODE[%d]",SQLCODE ); TRCLOG3 if( iInt==0 ) { strcpy( g_acRspCode, "999999" ); sprintf( g_acRspMsg,"制卡文件[cmsmkfile]无记录" ); ERRLOG fclose( pRfp ); SQLCLOSECUR(MkFile_l_cur,"MkFile_l_cur") return FAILED; } break; } strpack( cmsmkfile_track2msg ); strpack( cmsmkfile_track3msg ); sprintf( g_acTrcMsg, "cardno[%s]track2msg[%s]", cmsmkfile_cardno,cmsmkfile_track2msg ); TRCLOG3 if ( MKSEQNO_FLAG == 1 ) { fprintf( pRfp, "%.*d%s%.*s%s%s%s\n", MKSEQNOLEN, iInt+1, PREINSERTSTRING, MKFILEPRELEN, cmsmkfile_cardappr,cmsmkfile_track2msg,cmsmkfile_track3msg, TAILINSERTSTRING ); } else { fprintf( pRfp, "%.*s%s%s%s%s%s\n", MKFILEPRELEN, cmsmkfile_cardappr,PREINSERTSTRING, cmsmkfile_track2msg,PREINSERTSTRING,cmsmkfile_track3msg, TAILINSERTSTRING ); } cmsmkfile_makediskflg[ BIT1_LEN ] = MAKEFILE; EXEC SQL UPDATE cmsmkfile SET makediskflg = :cmsmkfile_makediskflg WHERE makedate = :cmsmkfile_makedate AND serseqno = :cmsmkfile_serseqno AND cardcenterbrc = :cmsmkfile_cardcenterbrc AND makediskflg = NOMAKEFILE AND cardno = :cmsmkfile_cardno; if ( SQLCODE ) { strcpy( g_acRspCode, "CMS114" ); /* 数据库更新错误 */ pubCrtRspInfo( "cmsmkfile",SQLCODE ); ERRLOG SQLCLOSECUR(MkFile_l_cur,"MkFile_l_cur") fclose( pRfp ); return FAILED; } iInt++; } fclose( pRfp ); SQLCLOSECUR(MkFile_l_cur,"MkFile_l_cur") if( cmsApiInsTranLog( pstPubcom, &stCmsCardInfo, &stCmsAcctM, "制卡", "生成制卡文件磁盘") ) { ERRLOG return FAILED; } /* 子交易出口 */ SetInqFormid( pstPubcom, "" ); strcpy( g_acTrcMsg, "子交易: 生成制卡文件磁盘处理结束.." ); TRCLOG4 strcpy( g_acRspCode, RSP_OK ); return SUCCESS;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -