📄 mgetkhxx.c
字号:
/* MGETKHXX:根据一定参数取客户信息 Input : 1 参数类别 1 1- 户名 2- 用电地址 3- 支付电费合同号 4- 表号 5- 根据需要的其他方式 2 强制查询标志 1 0-不强制(默认,超过阈值将不返回结果)1-强制 3 参数值 80 值内容由PARA_FLAG决定 Output: 1 返回状态(可以转换成int型)n 8 >0-操作成功,返回查询到的记录数 0-操作成功,无符合条件的记录; <0-失败 2 实际的结果集记录数 4 3 查询结果集 160 * n 3结果集的格式: 客户编号 CHAR(10) 电费合同号 CHAR(10) 户名 CHAR(50) 用电地址 CHAR(80) 表号 CHAR(20)*/#include "public.h"#define SIZE_OF_MAIN 170 /*主结构的大小*/#define MAX_RESULT 100 /*最大的结果数,如不是强制处理,则大于该数则不处理*/#ifdef __cplusplusextern "C"#endifvoid#ifdef MW_CICSmain(MW_SVCINFO * transb)#endif#ifdef MW_TUXEDOMGETKHXX(MW_SVCINFO * transb)#endif{ /*定义输入参数*/ char szParaType[2] = ""; char szForceFlag[2] = ""; char szParaValu[81] = ""; /*定义输出参数*/ char *szResult ; /*主要信息结果集*/ int iResultCount = 0; /*结果记录数*/ /*定义数据库数据处理变量*/ char szKHBH[11] = ""; char szZFDFHTH[11] = ""; char szKHXM[51] = ""; char szYDDZ[81] = ""; char szCCBH[21] = ""; /*定义临时变量*/ char szSql[2000] = ""; char szDelSql[100] = "delete from I_TMP_BANK_QRY_KHXX where ID=@@spid"; char szTemp[200] = ""; void *ppVar[100]; char *szInBuf; char *szOutBuf; int nBufferSize = 0; unsigned char pParam[] = TYPE_CHAR TYPE_CHAR TYPE_INT; int nStatus = 0; char szMsg[255]; int i; BOOL bRet; CMiddleWare mwMidWare; MW_Init(&mwMidWare,transb); szInBuf = MW_GetInBuf(&mwMidWare); if (szInBuf == NULL) { gf_Return(&mwMidWare,-1,"没有输入参数!"); return; } /*取输入参数:1:1:80*/ MW_Trace(szInBuf); strncpy(szParaType,szInBuf,1); szParaType[1] = '\0'; strncpy(szForceFlag,szInBuf + 1,1); szForceFlag[1] = '\0'; strncpy(szParaValu,szInBuf + 2,80); szParaValu[80] = '\0'; ppVar[0] = &iResultCount; /*执行查询存储过程*/ bRet = DB_ExecuteStoredProcedureWithResult(&theDatabase, "Up_c_bank_get_khxx", &nStatus, ppVar,1, pParam,szParaType,szParaValu,0); if(!bRet || nStatus) //失败 { DB_ExecuteSQL(&theDatabase,szDelSql); gf_Return(&mwMidWare,-1,"执行Up_c_bank_get_khxx失败"); return; } /*从临时表中取数据,并分配输出的数据缓冲*/ /*根据数据分配空间*/ if (iResultCount <= MAX_RESULT || szForceFlag[0] == '1') nBufferSize = SIZE_OF_MAIN * iResultCount; else nBufferSize = 0; MW_AllocateString(&mwMidWare,nBufferSize + 40); /*最大设置32K的空间*/ szOutBuf = MW_GetOutBuf(&mwMidWare); /*----------*/ /*----------*/ if (szOutBuf == NULL) { gf_Return(&mwMidWare,-1,"分配空间失败!"); return; } szResult = szOutBuf + 8; ppVar[0] = szKHBH; ppVar[1] = szZFDFHTH; ppVar[2] = szKHXM; ppVar[3] = szYDDZ; ppVar[4] = szCCBH; if (nBufferSize > 0 ) { /*2、按顺序取数据*/ sprintf(szSql,"select KHBH ,ZFDFHTH ,KHXM ,YDDZ ,CCBH from I_TMP_BANK_QRY_KHXX where ID=@@spid"); if(!DB_SQLPrepare(&theDatabase, szSql, ppVar, 5)) { sprintf(szMsg,"SQL = %s Prepare失败!",szSql); gf_Return(&mwMidWare,-1,szMsg); return; } i = 0; /* ======================= */ while(DB_SQLFetch(&theDatabase) == TRUE) { /*有数据,将数据放入Buffer*/ //sprintf(szTemp,"%10s%10s%40s%80s%20s",szKHBH,szZFDFHTH,szKHXM,szYDDZ,szCCBH); sprintf(szTemp,"%10s%10s%50s%80s%20s",szKHBH,szZFDFHTH,szKHXM,szYDDZ,szCCBH); memcpy(szResult + i * SIZE_OF_MAIN,szTemp,SIZE_OF_MAIN); i++; /* ======================= */ } } if (nBufferSize > 0) sprintf(szTemp,"%4d",iResultCount); else strcpy(szTemp," 0"); memcpy(szOutBuf + 4,szTemp,4); /*输出结果*/ DB_SQLDone(&theDatabase); DB_ExecuteSQL(&theDatabase,szDelSql); gf_Return(&mwMidWare,iResultCount,""); return;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -