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

📄 mgetkhxx.c

📁 电力与银行通讯的源码 1.应用tuxedo中间件. 2.与银行的前置机通讯. 3.proc*c 的应用
💻 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 + -