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

📄 cms025.sqc

📁 一整套完整的银行卡系统源代码
💻 SQC
字号:
/******************************************************************** **   源码文件名称 : cms025.SQC **   所属子系统   : CMS  **   当前文件版本 : 4.0.0.0 **   作者         : guoyun **   版本创建日期 : 2004/10/25 **   功能描述     : 按卡号、币种和产品代码获取卡账户信息子交易 **   修改记录     : **   修改人       修改日期     修改日期*********************************************************************/#include "code.h"#include "attrdef.h"#include "sysdef.h"#include "pubcom.h"#include "cmscode.h"#include "cmsacctm.h"#include "pubinq.h"#include <stdio.h>#include <fcntl.h>EXEC SQL INCLUDE SQLCA;int cmsGetCardAcctPrdPro( PUBCOM *pstPubcom ){	/* 定义宿主变量 */	EXEC SQL BEGIN DECLARE SECTION;        char    acPrdName[BIT41_LEN + 1];        char    acDecName[BIT41_LEN + 1];        char    acChName[BIT17_LEN + 1];	EXEC SQL END DECLARE SECTION;	/*定义局部变量*/    FILE    *fp;	int		iRtn;									/* 函数返回值		*/    int     iNumx;                          		/* 数组计数器       */    int     iNumy;                          		/* 数组计数器       */    int     iCount=0;                          		/* 计数器	        */	char	acCardNo[ CARDNO_LEN + 1 ];				/* 卡号  			*/	char	acCcy[ CCY_LEN + 1 ];					/* 币种  			*/	char	acPrdCode[ PRDCODE_LEN + 1 ];			/* 产品代码			*/	char	acBuf[ CONDITION_LEN + 1 ];				/* 临时存储区		*/    char    acTableName[PRDCODE_LEN + 1];           /* 表名称 			*/    char    acFileName[FILENAME_LEN + 1];           /* 文件名称			*/	struct	cmsacctm			stCmsAcctM;			/* 卡帐户对照表		*/    BASESUBACCTINFO  			stAcctInfo; 		/* 帐户信息			*/	strcpy( g_acTrcMsg, "子交易: 按卡号、币种和产品代码获取卡账户信息子交易.." );	TRCLOG4	/* 初始化 */	memset( &stCmsAcctM,		0x00,	sizeof( struct cmsacctm ) );	memset( &stAcctInfo,		0x00,	sizeof( BASESUBACCTINFO ) );	memset( acCardNo,			0x00,	sizeof( acCardNo ) );	memset( acCcy,				0x00,	sizeof( acCcy ) );	memset( acPrdCode,			0x00,	sizeof( acPrdCode ) );	/* 取数据字典值 */	getstring( "CardNo",		acCardNo				);	getstring( "Ccy1",			acCcy					);	getstring( "PrdCode",		acPrdCode				);	    sprintf( g_acTrcMsg,"CardNo[%s]Ccy1[%s]PrdCode[%s]",acCardNo,acCcy,acPrdCode);    TRCLOG3    strcpy( acTableName, "cms025" );    sprintf(acFileName, "%s%s%08ld", acTableName, pstPubcom->acTranDate8, pstPubcom->lSerSeqNo);    fp = (FILE *)BeginFile( pstPubcom, acFileName );    if ( fp == NULL )    {        strcpy( g_acRspMsg, "打开文件句柄出错!" );        pubCrtRspInfo( );        ERRLOG        goto Exit ;    }    /*组织查询字典*/    if (GetInqDict( fp , "210006" ))    {        ERRLOG        goto Exit ;    }	/* 获取卡帐户对照表信息 */	strcpy( stCmsAcctM.cardno, acCardNo);	strcpy( stCmsAcctM.ccy, acCcy);	strcpy( stCmsAcctM.prdcod, acPrdCode);    stCmsAcctM.status[ BIT1_LEN ] = NORMAL_STS;	pubStoVCmsacctm( &stCmsAcctM );    EXEC SQL    DECLARE acc_l_cur CURSOR FOR                SELECT * FROM CMSACCTM                WHERE cardno = :cmsacctm_cardno                AND status = :cmsacctm_status				AND ccy = :cmsacctm_ccy				AND prdcod = :cmsacctm_prdcod                ORDER BY acctseqno;    /* 定义游标出错     if ( SQLCODE )    {        strcpy( g_acRspCode, "CMS110" );        pubCrtRspInfo( "cmsacctm", SQLCODE );        ERRLOG        goto Exit;    }*/	SQLOPENCUR(acc_l_cur,"acc_l_cur")    /* 打开游表出错 */    if ( SQLCODE )    {        strcpy( g_acRspCode, "CMS111" );        pubCrtRspInfo( "cmsacctm", SQLCODE );        ERRLOG        goto Exit ;    }    while ( TRUE )    {        pubInitCmsacctm();        EXEC SQL    FETCH acc_l_cur INTO R_CMSACCTM ;        /* 取游表出错 */        if ( SQLCODE && SQLCODE != SQLNOTFOUND )        {            strcpy( g_acRspCode, "CMS112" );            pubCrtRspInfo( "cmsacctm", SQLCODE );            ERRLOG	SQLCLOSECUR(acc_l_cur,"acc_l_cur")            goto Exit ;        }        /* 记录不存在 */        else if ( SQLCODE == SQLNOTFOUND )            break;        /* 记录存在 */        pubVtoSCmsacctm( &stCmsAcctM );		/* 取币种名称 */		EXEC SQL SELECT chname INTO :acChName				 FROM 	pubcurrencyinfo				 WHERE	ccy = :cmsacctm_ccy;		if( SQLCODE && SQLCODE != SQLNOTFOUND )		{    		strcpy(g_acRspCode,"CMS112");    		pubCrtRspInfo("dpssaveprdinfo",SQLCODE);    		ERRLOG	SQLCLOSECUR(acc_l_cur,"acc_l_cur")    		goto Exit;		}				/* 取业务种类名称 */		EXEC SQL SELECT description INTO :acDecName				 FROM 	cmsbussprd				 WHERE	busskind = :cmsacctm_busskind;		if( SQLCODE && SQLCODE != SQLNOTFOUND )		{    		strcpy(g_acRspCode,"CMS112");    		pubCrtRspInfo("cmsbussprd",SQLCODE);    		ERRLOG	SQLCLOSECUR(acc_l_cur,"acc_l_cur")    		goto Exit;		}        /* 根据产品代码取产品名称 */        pubInitDpssaveprdinfo();        pubInitDpstermprdinfo();        EXEC SQL SELECT prdname INTO :acPrdName                 FROM   dpssaveprdinfo                 WHERE  prdcode = :cmsacctm_prdcod;        if( SQLCODE && SQLCODE != SQLNOTFOUND )        {            strcpy(g_acRspCode,"CMS112");            pubCrtRspInfo("dpssaveprdinfo",SQLCODE);            ERRLOG	SQLCLOSECUR(acc_l_cur,"acc_l_cur")            goto Exit;        }        if ( SQLCODE == SQLNOTFOUND )        {            EXEC SQL SELECT prdname INTO :acPrdName                     FROM   dpstermprdinfo                     WHERE  prdcode = :cmsacctm_prdcod;            if( SQLCODE && SQLCODE != SQLNOTFOUND )            {                strcpy(g_acRspCode,"CMS112");                pubCrtRspInfo("dpstermprdinfo",SQLCODE);                ERRLOG	SQLCLOSECUR(acc_l_cur,"acc_l_cur")                goto Exit;            }        }        /* 按客户账号和款项代码获取账户信息 DPS API */    sprintf( g_acTrcMsg,"stCmsAcctM.acctno[%s]stCmsAcctM.subacct[%s]stCmsAcctM.ccy[%s]",stCmsAcctM.acctno,stCmsAcctM.subacct,stCmsAcctM.ccy);    TRCLOG3		iRtn = InqBaseSubAcct(  pstPubcom, stCmsAcctM.acctno,                      		    stCmsAcctM.subacct,                      		    stCmsAcctM.ccy, 								"1100000000000000", "0","0",                      		    &stAcctInfo);	    if (iRtn)	        {			strcpy( g_acRspCode, RSP_OK );        }        /* 拼写文件 */        fprintf( fp, "\"%s\"~\"%s\"~\"%s\"~\"%s\"~\"%s\"~\"%s\"~\"%s\"~\"%s\"~\"%s\"~\"%s\"~\"%s\"~%.2lf~%.2lf\n",                            stCmsAcctM.acctseqno,   /* 卡内帐户序号 */                            stCmsAcctM.busskind,    /* 业务种类     */							acDecName,				/* 业务种类描述 */                            stCmsAcctM.ccy,         /* 币种         */							acChName,				/* 币种名称		*/                            stCmsAcctM.prdcod,      /* 产品代码     */							acPrdName,				/* 产品名称 	*/                            stCmsAcctM.acctno,      /* 帐号         */                            stCmsAcctM.subacct,     /* 款项代码     */                            stCmsAcctM.accowner,    /* 帐户属主     */                            stCmsAcctM.cardbookflag,/* 卡折标志     */                            stAcctInfo.dAvailBal,   /* 可用余额     */                            stAcctInfo.dBal);       /* 余额         */		iCount ++;    }	SQLCLOSECUR(acc_l_cur,"acc_l_cur")  	EndFile( fp );	if (iCount == 0)	{        strcpy( g_acRspCode, "CMS1B7" );        pubCrtRspInfo( "卡内帐户");        ERRLOG        return FAILED;	}    /* 出口赋值 */Exit:    EndFile( fp );    if( !strcmp( g_acRspCode, RSP_OK ) )    {        SetInqFormid(pstPubcom, "216019") ;        sprintf( g_acTrcMsg,"子交易: 按卡号、币种和产品代码获取卡账户信息子交易正常结束");        TRCLOG4        return SUCCESS;    }    else    {        sprintf( g_acTrcMsg,"子交易: 按卡号、币种和产品代码获取卡账户信息子交易失败");        TRCLOG4        return FAILED ;    }	/* 子交易出口  		SetInqFormid(pstPubcom, "210006") ;	setpubstring("FileFlag","2");	setpubstring("FileName",acFileName);	strcpy( g_acTrcMsg, "子交易: 按卡号、币种和产品代码获取卡账户信息子交易结束.." );	TRCLOG4	strcpy( g_acRspCode,  RSP_OK );	return SUCCESS;*/}

⌨️ 快捷键说明

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