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

📄 cursor.cpre

📁 本程序使用C语言内嵌sql
💻 CPRE
字号:
#include "ap.h"#include "cfis.h"#include "cfispath.h"#include "cfisio.h"#include <sybtesql.h>EXEC SQL INCLUDE sqlca;EXEC SQL INCLUDE "cfissql.h";#define ERR_RETURN      {\    DeleteIso8583(&iso8583stru);\    AP_UPDATE(AP_PATH_RESPCODE, "6523");\EXEC CICS RETURN;}#define FMT_O  "%12s%19s%3s%12s%17.3lf%17.2lf%1s%4s%8s"#define VAR_O  algstru.szBlotNo, algstru.szDebCod, algstru.szTACode, \algstru.szTAAcct, algstru.dHpnLot, algstru.dHpnBal, \algstru.szJrnSts, algstru.szTraCod, algstru.szVouchernomain(){    short nCnt = 0;    short nFlag = 0;    char  szFlag[2];    PXMLSTRU pxmlstruReq;    PXMLSTRU pxmlstruResp;    ISO8583STRU iso8583stru;    TIMESTRU timestru;    char szResp[5];    char szData[LEN_DATA_XML + 1];    char szFmt[LEN_DATA_XML + 1];    EXEC SQL BEGIN DECLARE SECTION;    char szSerNo[17];    char szCardNo[20];    char szInqDate[9];    char szCustNo[17];    char szTaAcct[13];    char szHndBak[9];    char szTeller[5];    char szJrnNo[AP_LEN_JRNNO + 1];    CFISALGSTRU algstru;    EXEC SQL END DECLARE SECTION;    char tempbuf[5];    memset(&iso8583stru, 0x00, sizeof(ISO8583STRU));    memset(&algstru, 0x00, sizeof(CFISALGSTRU));    memset(&pxmlstruReq, 0x00, sizeof(PXMLSTRU));    memset(&pxmlstruResp, 0x00, sizeof(PXMLSTRU));    bufclr(szFlag);    bufclr(szResp);    bufclr(szData);    bufclr(szFmt);    bufclr(szSerNo);    bufclr(szCardNo);    bufclr(szInqDate);    bufclr(szCustNo);    bufclr(szTaAcct);    bufclr(szHndBak);    bufclr(szTeller);    bufclr(szJrnNo);    bufclr(tempbuf);    pxmlstruReq = CfisGetReqXml();    pxmlstruResp = CfisGetRespXml();    if(!VERIFY_NULL(pxmlstruReq) || !VERIFY_NULL(pxmlstruResp))    EXEC CICS RETURN;    AP_DEMAND(AP_PATH_BRANCH, tempbuf);    AP_DEMAND(AP_PATH_REQID, szHndBak);    AP_DEMAND(OTHER_PATH_IBLTCODE, szSerNo);    AP_DEMAND(OTHER_PATH_DINQDATE, szInqDate);    AP_DEMAND(OTHER_PATH_ENDFLAG, szFlag);    AP_DEMAND(AP_PATH_TELLER, szTeller);    /*PrintLog(stderr,"szSerNo is |%s|, szInqDate is |%s|", szSerNo, szInqDate);*/    /* 从业务流水中获取数据。 */    /*    PrintLog(stderr, "szFlag is [%s]", szFlag);*/    if (szFlag[0] == '0')     /* 查询末笔 */    {        /*PrintLog(stderr, "查询末笔");*/        EXEC SQL SELECT * INTO :algstru from CFIS_ALG        WHERE ALGBLOTNO IN        (SELECT MAX(ALGBLOTNO) from CFIS_ALG        WHERE ALGTRNDAT = :szInqDate and        ALGHNDBNK = :szHndBak and        ALGTELLER = :szTeller);        if(sqlca.sqlcode != 0)        {            PrintLog(stderr, "algstru.szBlotNo=%s, szTeller=%s", algstru.szBlotNo, szTeller);            PrintLog(stderr, "sqlca.sqlcode=[%d], errmsg is [%s]", sqlca.sqlcode,sqlca.sqlerrm.sqlerrmc);            AP_UPDATE(AP_PATH_RESPCODE, "1001");            EXEC CICS RETURN;        }        memset(szData, 0, sizeof(szData));        memset(szFmt, 0, sizeof(szFmt));        if(strcmp(algstru.szJrnSts, "9") == 0 &&        (strcmp(algstru.szTraCod, "3869") == 0 || strcmp(algstru.szTraCod, "3879") == 0)){            if (strcmp(algstru.szRtnCod, "0000") == 0)            algstru.szJrnSts[0] = '0';            else if (strcmp(algstru.szRtnCod, "2845") == 0)            algstru.szJrnSts[0] = '3';            else            algstru.szJrnSts[0] = '2';        }        tprintf(szFmt, FMT_O, VAR_O);        strcat(szData, szFmt);        nCnt = 1;    }    else    {        /* PrintLog(stderr, "非查询末笔");*/        EXEC SQL DECLARE Jrn_cursor CURSOR FOR        SELECT * FROM CFIS_ALG NOHOLDLOCK        WHERE  ALGTRNDAT  = :szInqDate  AND        ALGHNDBNK = :szHndBak AND        ALGBLOTNO  >= :szSerNo        ORDER BY ALGBLOTNO;        EXEC SQL OPEN Jrn_cursor;        if(!VERIFY(sqlca.sqlcode == SQL_NORMAL))        {            AP_UPDATE(AP_PATH_RESPCODE, "1001");            EXEC SQL DEALLOCATE CURSOR Jrn_cursor;            EXEC CICS RETURN;        }        memset(szData, 0, sizeof(szData));        while(TRUE)        {            memset(szFmt,0, sizeof(szFmt));            EXEC SQL FETCH Jrn_cursor INTO :algstru;            if(sqlca.sqlcode == SQL_NOTFOUND)            break;            if(strcmp(algstru.szJrnSts, "9") == 0 &&            (strcmp(algstru.szTraCod, "3869") == 0 || strcmp(algstru.szTraCod, "3879") == 0)){                if (strcmp(algstru.szRtnCod, "0000") == 0)                algstru.szJrnSts[0] = '0';                else if (strcmp(algstru.szRtnCod, "2845") == 0)                algstru.szJrnSts[0] = '3';                else                algstru.szJrnSts[0] = '2';            }            tprintf(szFmt, FMT_O, VAR_O);            strcat(szData, szFmt);            nCnt++;            if(nCnt >= 10)            {                nFlag = 1;                break;            }        }        EXEC SQL COLSE Jrn_cursor;        EXEC SQL DEALLOCATE CURSOR Jrn_cursor;    }    /* 准备输出数据 */    AP_INSERT(INQ_PATH, NULL);    sprintf(szFmt, "%2hd", nCnt);    AP_INSERT(INQ_PATH_SCNT, szFmt); /*查询条数*/    sprintf(szFmt, "%1hd", nFlag);    AP_INSERT(INQ_PATH_IFINFLAG, szFmt); /*未完标志*/    AP_INSERT(INQ_PATH_SDATA, szData);/*查询信息*/    AP_UPDATE(AP_PATH_RESPCODE, "0000");    EXEC CICS RETURN;}

⌨️ 快捷键说明

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