亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? butility.h

?? 本源碼為移動公司話費查詢中間件TUXEDO使用的實例
?? H
字號:
//#include "msgdefine.h"/*測試定義*/#ifdef DEBUG 	#define PASSLINE cout<<"文件:"<<__FILE__<<"\t"<<"行數:"<<__LINE__<<endl;		/*for C++*/	#define LOGPASSLINE userlog("文件:%s;\t行數:%d!\n",__FILE__,__LINE__);			/*for C */#else	#define PASSLINE   #endif#define DATAPATH	"./data/"/*輸入輸出寫入文件*/#define INPUT  FILE * infp; char inpath[50] = DATAPATH ; strcat(inpath,strSvcName); if(!(infp = fopen(inpath,"a+b")))  userlog("打開輸入文件 %s 失敗!\n",strSvcName); \		   					else 	{ fprintf(infp,"\n--------------------------------Service:%s:Input FML--------------------------------------\n",strSvcName); Ffprint(transf,infp);} fclose(infp);#define OUTPUT FILE * outfp;char outpath[50] = DATAPATH ; strcat(outpath,strSvcName); if(!(outfp = fopen(outpath,"a+b")))  userlog("打開輸出文件 %s 失敗!\n",strSvcName); \		   					else 	{ fprintf(outfp,"--------------------------------Service:%s:Output FML--------------------------------------\n",strSvcName); Ffprint(transf,outfp);} fclose(outfp);/*服務開始標志*/#define SERVICESTART userlog("服務%s開始.........\n",strSvcName);	   					/*同步和會話結束標志*/#define SYNSERVICEEND userlog("服務%s調用成功......!\n",strSvcName);#define CONSERVICEEND userlog("服務%s調用成功,共發送%d條數據......!\n",strSvcName,lSumCnt);/*同步、會話分配FML緩存失敗處理*/#define SYNALLOCFAIL \	{	userlog("服務%s:分配FML緩存失敗....調用失敗!\n",strSvcName); \		strcpy(strErrNo,strAllocFail); \		sprintf(strErrInfo,"服務%s:分配FML緩存失敗",strSvcName); \		transf = transftemp; \		SETRETURN(transf,strErrNo,strErrInfo) \		tpreturn(TPFAIL,0,rqst->data,0L,0L); \		}#define CONALLOCFAIL \	{	userlog("服務%s:分配FML緩存失敗....調用失敗!\n",strSvcName); \		strcpy(strErrNo,strAllocFail); \		sprintf(strErrInfo,"服務%s:分配FML緩存失敗",strSvcName); \		transf = transftemp; \		SETRETURN(transf,strErrNo,strErrInfo) \		SEND() \		tpreturn(TPFAIL,0,rqst->data,0L,0L); \	}		/*同步、會話必須參數項不足處理*/#define SYNLACKARGV \	{	userlog("服務%s: 輸入參數不全,調用失敗!\n",strSvcName); \		strcpy(strErrNo,strLackArgv);	\		sprintf(strErrInfo,"服務%s:輸入參數不全",strSvcName);	\		SETRETURN(transf,strErrNo,strErrInfo) \		if(tpabort(0) == -1) {userlog("tpabort()---回滾事務失敗:[%s]",tpstrerror(tperrno));} \		tpreturn(TPFAIL,-3L,(char *)transf,0,0);}		#define CONLACKARGV \	{	userlog("服務%s: 輸入參數不全,調用失敗!\n",strSvcName); \		strcpy(strErrNo,strLackArgv); \		sprintf(strErrInfo,"服務%s:輸入參數不全",strSvcName); \		SETRETURN(transf,strErrNo,strErrInfo) \		SEND() \		if(tpabort(0) == -1) {userlog("tpabort()---回滾事務失敗:[%s]",tpstrerror(tperrno));} \		tpreturn(TPFAIL,-3L,(char *)transf,0L,0); \	}/*會話連接失敗處理*/#define CONTPCONNECTFAIL \		{	userlog("服務%s:建立同%s服務的連接失敗tpconnect, tperrno[%d],\n tpstrerror[%s]\n",strSvcName,servicename,tperrno,tpstrerror(tperrno)); \			strcpy(strErrNo,strConnectFail); \			sprintf(strErrInfo,"服務%s:建立同%s服務的連接失敗",strSvcName,servicename); \			SETRETURN(transf,strErrNo,strErrInfo) \			userlog("服務%s失敗............!\n",strSvcName); \			if(tpabort(0) == -1) {userlog("tpabort()---回滾事務失敗:[%s]",tpstrerror(tperrno));} \			tpreturn(TPFAIL,-3L,(char *)transf,0L,0L); \		}/*發送數據*/#define SEND() if(tpsend(iSendCD,(char *)transf,NULL,NULL,&revent) == -1) SENDFAILDEAL/*發送數據失敗處理*/#define SENDFAILDEAL \		if ( (tperrno == TPEEVENT) && ((int)revent == TPEV_DISCONIMM)) \		{userlog("服務%s,會話異常斷開!\n",strSvcName); \		if(tpabort(0) == -1) {userlog("tpabort()---回滾事務失敗:[%s]",tpstrerror(tperrno));} \		tpreturn(TPSUCCESS,0L,NULL,0L,0); \		} \		else \		{       userlog("服務%s: tpsend failed tperrno[%d] tpstrerror[%s] revent [%ld]",strSvcName,tperrno,tpstrerror(tperrno),revent); \			sprintf(strErrInfo,"服務%s,發送數據失敗:tpsend()",strSvcName); \			Fchg(transf,ERRINFO,(FLDOCC)0,(char *)strErrInfo,(FLDLEN)0); \			Fchg(transf,ERRNO,(FLDOCC)0,strSendataFail,(FLDLEN)0); \			userlog("服務%s:失敗............!\n",strSvcName); \			if(tpabort(0) == -1) {userlog("tpabort()---回滾事務失敗:[%s]",tpstrerror(tperrno));} \			tpreturn(TPFAIL,-5L,(char *)transf,0L,0); \		}/*接受數據失敗處理*/#define RECVFAILDEAL \ 	if(tperrno == TPEEVENT && ((int)revent == TPEV_SVCFAIL))  \ 	{ \ 		if(tpsend(iSendCD,(char *)transf,NULL,NULL,&revent) == -1) SENDFAILDEAL \ 		userlog("服務%s失敗............!\n",strSvcName);\ 		tpreturn(TPFAIL,-3L,(char *)transf,0L,0L); \ 	} \ 	if (tperrno != TPEEVENT || ((int)revent != TPEV_SVCSUCC )) \ 	{ \		userlog("服務%s:調用%s服務失敗, tperrno[%d], \n tpevent[%d] tpstrerror[%s], tpurcode[%d]\n",strSvcName,servicename,tperrno,revent,tpstrerror(tperrno),tpurcode);\		strcpy(strErrNo,strRecvdataFail); \		sprintf(strErrInfo,"服務%s:接受%s服務數據失敗",strSvcName,servicename);  \		SETRETURN(transf,strErrNo,strErrInfo) \		if(tpsend(iSendCD,(char *)transf,NULL,NULL,&revent) == -1) SENDFAILDEAL \		userlog("服務%s失敗............!\n",strSvcName);  \		tpreturn(TPFAIL,-3L,(char *)transf,0L,0L);  \ 	}	    /*連接接受發送數據處理*/#define CONRECSENDEAL \	if ((iRecvCD = tpconnect((char *)servicename,(char *)transf,0,TPRECVONLY)) == -1) CONTPCONNECTFAIL \	while(tprecv(iRecvCD,(char **)&transf,(long *)&len,NULL,&revent) != -1) \	{ \	if(tpsend(iSendCD,(char *)transf,0,TPSIGRSTRT,&revent) == -1) \	{ \	userlog("服務%s:調用%s服務, 測試tperrno[%d], \n tpevent[%d] tpstrerror[%s], tpurcode[%d]\n",strSvcName,servicename,tperrno,revent,tpstrerror(tperrno),tpurcode); \	if(tperrno == TPEEVENT && (int)revent == TPEV_SVCFAIL) \	{ \		if(tpsend(iSendCD,(char *)transf,NULL,NULL,&revent) == -1) SENDFAILDEAL \		userlog("服務%s失敗............!\n",strSvcName); \		if(tpabort(0) == -1) {userlog("tpabort()---回滾事務失敗:[%s]",tpstrerror(tperrno));} \		tpreturn(TPFAIL,-3L,(char *)transf,0L,0L); \	} \	if (tperrno != TPEEVENT || (int)revent != TPEV_SVCSUCC ) \	{ \		userlog("服務%s:調用%s服務失敗, tperrno[%d], \n tpevent[%d] tpstrerror[%s], tpurcode[%d]\n",strSvcName,servicename,tperrno,revent,tpstrerror(tperrno),tpurcode); \		strcpy(strErrNo,strRecvdataFail); \		sprintf(strErrInfo,"服務%s:接受%s服務數據失敗",strSvcName,servicename); \		SETRETURN(transf,strErrNo,strErrInfo) \		if(tpsend(iSendCD,(char *)transf,NULL,NULL,&revent) == -1) SENDFAILDEAL \		userlog("服務%s失敗............!\n",strSvcName); \		if(tpabort(0) == -1) {userlog("tpabort()---回滾事務失敗:[%s]",tpstrerror(tperrno));} \		tpreturn(TPFAIL,-3L,(char *)transf,0L,0L); \	} \	} \	else \	{SYNSERVICEEND \	} \	} \	userlog("服務%s執行完畢!!!!!!!!!\n",strSvcName); \	if( tpcommit(0) == -1){userlog("tpcommit()---提交服務失敗!:[%s]",tpstrerror(tperrno));tpreturn(TPFAIL, -1, (char *)transf, 0 ,0);} \	tpreturn(TPSUCCESS,0L,(char *)transf,0L,0L);/*同步、會話調用*/#define SYNCALL()  if (tpcall( servicename, (char *)transf, 0L, (char **)&transf, (long *)&len, 0L) == -1) SYNTPCALLFAIL 	/*tpcall() 返回-1時;1.當subordinate使TPFAIL返回時,2.其他異常情況返回時*/#define CONCALL()  if (tpcall( servicename, (char *)transf, 0L, (char **)&transf, (long *)&len, 0L) == -1 ) CONTPCALLFAIL/*同步調用失敗處理*/#define SYNTPCALLFAIL \		{	userlog("服務%s:調用%s服務失敗, tperrno[%d], \n tpstrerror[%s], tpurcode[%d]\n",strSvcName,servicename,tperrno,tpstrerror(tperrno),tpurcode); \			if( tperrno == TPESVCFAIL ) \			{if(tpabort(0) == -1) {userlog("tpabort()---回滾事務失敗:[%s]",tpstrerror(tperrno));} \			tpreturn(TPFAIL,-3L,(char *)transf,0L,0L);} \			else { \			/*strcpy(strErrNo,strCallFail); \			sprintf(strErrInfo,"服務%s:調用%s服務失敗",strSvcName,servicename); \			SETRETURN(transf,strErrNo,strErrInfo)*/userlog("服務%s失敗............!\n",strSvcName); \			if(tpabort(0) == -1) {userlog("tpabort()---回滾事務失敗:[%s]",tpstrerror(tperrno));} \			tpreturn(TPFAIL,-3L,(char *)transf,0L,0L); \			}}/*會話調用失敗處理*/#define CONTPCALLFAIL \	 	{	userlog("服務%s:調用%s服務失敗, tperrno[%d], \n tpstrerror[%s], tpurcode[%d]\n",strSvcName,servicename,tperrno,tpstrerror(tperrno),tpurcode); 	\	 		if( tperrno == TPESVCFAIL ) \			{if(tpabort(0) == -1) {userlog("tpabort()---回滾事務失敗:[%s]",tpstrerror(tperrno));} \			tpreturn(TPFAIL,-3L,(char *)transf,0L,0L);} \			else \			{strcpy(strErrNo,strCallFail); \			sprintf(strErrInfo,"服務%s:調用%s服務失敗",strSvcName,servicename); \			SETRETURN(transf,strErrNo,strErrInfo)  SEND() \			if(tpabort(0) == -1) {userlog("tpabort()---回滾事務失敗:[%s]",tpstrerror(tperrno));} \			userlog("服務%s失敗............!\n",strSvcName); \			tpreturn(TPFAIL,-3L,(char *)transf,0L,0L);}}						 			/*提示信息*/#define SYNKEYINFO(mphonecode,strkey) userlog("電話號碼:[%s];業務關鍵字:[%s]\n", mphonecode, strkey);	 #define SYNMTRADE	userlog("mtradeid:[%s] mtradetime[%s]\n", mtradeid,mtradetime); 		#define CONKEYINFO(strkey1,strkey2) userlog("服務關鍵字1[%s],關鍵字2[%s]",strkey1,strkey2);			/*數據庫操作*//*存儲過程執行信息*/#define PROCEXCINFO userlog("服務%s: 存儲過程執行結果,sqlcode:[%d],iRet:[%d],strErrInfo:[%s]\n",strSvcName,sqlca.sqlcode,iRet,strErrInfo);/*同步存儲過程執行失敗處理*/#define SYNPROCEXCFAIL \	{	userlog("服務%s: 存儲過程運行失敗, 返回值:%d, 返回信息:%s, 手機號:%s\n",strSvcName,iRet,strErrInfo,mphonecode);\		strcpy(strErrNo,strProcExcFail); \		sprintf(strErrInfo+strlen(strErrInfo),"服務%s:存儲過程調用失敗,過程返回值:[%d]",strSvcName,iRet); \		userlog("錯誤信息:[%s]",strErrInfo); \		SETRETURN(transf,strErrNo,strErrInfo) \		sql_err(strErrInfo,(FBFR *)transf); \		tpreturn(TPFAIL,-3L,(char *)transf,0L,0); \	}		/*會話存儲過程執行失敗處理*/#define CONPROCEXCFAIL \	{	userlog("服務%s: 存儲過程運行失敗, 返回值:%d, 返回信息:%s\n",strSvcName,iRet,strErrInfo); \		strcpy(strErrNo,strProcExcFail); \		SETRETURN(transf,strErrNo,strErrInfo) \		if(tpsend(iSendCD,(char *)transf,NULL,TPNOBLOCK,&revent) == -1)SENDFAILDEAL \		if(tpabort(0) == -1) {userlog("tpabort()---回滾事務失敗:[%s]",tpstrerror(tperrno));} \		tpreturn(TPFAIL,(long)iRet,(char *)transf,0L,0); \	}/*同步調用數據庫操作失敗處理*/#define SYNDATABASEFAIL \	{	sprintf(strErrInfo,"服務%s(-4):存儲過程報錯,異常信息:sqlca.sqlcode=   [%d]",strSvcName,sqlca.sqlcode); \		sql_err(strErrInfo,(FBFR *)transf); \		Fchg(transf,ERRNO,(FLDOCC)0,strDatabaseFail,(FLDLEN)0); \		tpreturn(TPFAIL,-3L,(char *)transf,0L,0);}/*會話調用數據庫操作失敗處理*/		#define CONDATABASEFAIL \	{	sprintf(strErrInfo,"服務%s(-4):數據庫操作失敗\t異常信息sqlca.sqlcode=   [%d]",strSvcName,sqlca.sqlcode); \		sql_err(strErrInfo,(FBFR *)transf); \		Fchg(transf,ERRNO,(FLDOCC)0,strDatabaseFail,(FLDLEN)0); \		SEND() \		if(tpabort(0) == -1) {userlog("tpabort()---回滾事務失敗:[%s]",tpstrerror(tperrno));} \		tpreturn(TPFAIL,-4L,(char *)transf,0L,0); \		}/*警告提示信息*/		#define DBWARNING userlog("服務%s: warning--sqlca.sqlcode is -1405\n",strSvcName);					/*存儲過程成功執行*/#define PROCEXCSUCCESS userlog("服務%s: 存儲過程正確執行,sqlcode: %d, iRet: %d, strErrInfo: %s\n",strSvcName,sqlca.sqlcode,iRet,strErrInfo);/*服務成功處理*/#define SUCCESSDEALWITH { strcpy(strErrNo,strSuccess);sprintf(strErrInfo,"服務%s:調用成功",strSvcName);SETRETURN(transf,strErrNo,strErrInfo) }/*賦值出錯處理*/#define SYNASSIGNFAIL \		{		userlog("服務%s:設置返回值出錯,Ferror:%d--Fstrerror%s\n",strSvcName,Ferror,Fstrerror(Ferror)); \				sprintf(strErrInfo,"服務%s:設置返回值出錯,Ferror:%d--Fstrerror%s\n",strSvcName,Ferror,Fstrerror(Ferror)); \				strcpy(strErrNo,strAssignFail); \				SETRETURN(transf,strErrNo,strErrInfo) \				sql_err(strErrInfo,(FBFR *)transf); \				userlog("服務%s失敗............!\n",strSvcName); \				tpreturn(TPFAIL,-3L,(char *)transf,0L,0); \		}/*錯誤編碼信息賦、取值*/#define SETRETURN(transf,strErrNo,strErrInfo) \	{Fchg(transf,ERRNO,(FLDOCC)0,strErrNo,(FLDLEN)0); Fchg(transf,ERRINFO,(FLDOCC)0,strErrInfo,(FLDLEN)0);} #define GETRETURN(transf,strErrNo, strErrInfo) \	{	Fget(transf,ERRNO, (FLDOCC)0, strErrNo,(FLDLEN *)NULL); Fget(transf,ERRINFO,(FLDOCC)0,strErrInfo,(FLDLEN *)NULL);}	       

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区三区四区在线| 青青草国产精品亚洲专区无| 日本色综合中文字幕| 亚洲精品乱码久久久久久黑人| 国产成人av在线影院| 337p日本欧洲亚洲大胆精品| 欧美一区二区三区系列电影| 欧美精品黑人性xxxx| 一区二区三区久久久| 亚洲一区在线观看网站| 91丨国产丨九色丨pron| 中文字幕一区二区视频| 综合色中文字幕| 色婷婷综合视频在线观看| 91浏览器打开| 欧美日本在线一区| 麻豆国产精品777777在线| 欧美大片顶级少妇| 久久久久久久久久电影| 成人国产精品免费网站| 国产精品乱人伦中文| 99re这里只有精品首页| 亚洲一级二级三级| 91精品国产乱码久久蜜臀| 日韩电影免费在线观看网站| 91精品在线免费| 国产综合色在线| 日韩一区欧美小说| 日韩国产欧美视频| 国产亚洲福利社区一区| 夜夜精品浪潮av一区二区三区| 日韩和欧美一区二区三区| 337p日本欧洲亚洲大胆精品| 亚洲欧洲日产国产综合网| 一区二区三区四区在线免费观看 | 日韩一区二区视频在线观看| 日韩精品一区二区三区蜜臀| 国产福利一区二区| 亚洲免费观看高清在线观看| 91精品国产色综合久久| 国产精品一区专区| 亚洲国产精品影院| 国产不卡视频在线播放| 日本伦理一区二区| 2019国产精品| 91久久精品网| 国产人妖乱国产精品人妖| 欧美中文字幕亚洲一区二区va在线| 加勒比av一区二区| 亚洲一区中文在线| 国产丝袜欧美中文另类| 丝袜脚交一区二区| caoporn国产一区二区| 日本va欧美va瓶| 91麻豆蜜桃一区二区三区| 久久色成人在线| 欧美理论片在线| 亚洲激情图片小说视频| 激情综合色播五月| 亚洲午夜日本在线观看| 国产精品蜜臀av| 2023国产精品| 欧美成人vr18sexvr| 夜夜嗨av一区二区三区中文字幕| 国产精品中文字幕欧美| 美脚の诱脚舐め脚责91| 91精品国产综合久久香蕉麻豆 | 99v久久综合狠狠综合久久| 精品免费视频.| 日韩一区二区三区观看| 亚洲午夜久久久久久久久电影院| 欧美国产精品中文字幕| 精品国产污网站| 91麻豆精品久久久久蜜臀 | 亚洲精选一二三| 成人少妇影院yyyy| 欧美高清在线一区二区| 久久久久久99久久久精品网站| 美女视频一区二区三区| 日韩avvvv在线播放| 日韩精品中午字幕| 欧美成人午夜电影| 欧美电影免费观看高清完整版在线观看 | 欧美一区二区久久| 日本美女一区二区| 久久综合久久综合九色| 欧美精品一区二区三区高清aⅴ | 中文字幕一区二区三区四区不卡| 中文在线一区二区| www.成人在线| 亚洲视频 欧洲视频| 中文字幕第一区二区| 国产精品性做久久久久久| 久久色在线观看| 国产激情视频一区二区三区欧美| 久久夜色精品国产噜噜av| 国产成人鲁色资源国产91色综 | 91浏览器入口在线观看| 亚洲精品乱码久久久久久日本蜜臀| 一本到不卡精品视频在线观看| 国产精品丝袜一区| 欧美性感一区二区三区| 香蕉av福利精品导航| 欧美高清精品3d| 日韩高清在线一区| 久久久久久久久97黄色工厂| 懂色av中文字幕一区二区三区| 亚洲精品综合在线| 欧美日本韩国一区二区三区视频| 日韩精品一二三| 久久综合五月天婷婷伊人| 国产福利电影一区二区三区| 日韩伦理电影网| 91精品久久久久久蜜臀| 懂色av一区二区三区蜜臀| 亚洲美女免费视频| 久久久天堂av| 色综合天天综合狠狠| 奇米影视在线99精品| 中文字幕中文字幕在线一区| 欧美色综合天天久久综合精品| 蜜桃久久久久久| 亚洲欧美二区三区| 中文字幕第一区二区| 91精品国产色综合久久| 一本一道波多野结衣一区二区| 久久 天天综合| 亚洲1区2区3区视频| 日韩一区有码在线| 国产亚洲欧美色| 一本色道综合亚洲| 成人99免费视频| 国产一区二区福利视频| 欧美午夜不卡视频| 成人av在线资源网站| 黑人精品欧美一区二区蜜桃| 亚洲成人资源网| 亚洲黄色片在线观看| 国产精品久久久久桃色tv| 久久精品夜夜夜夜久久| 精品99一区二区三区| 日韩一级片网址| 91精品国产高清一区二区三区 | 久久久激情视频| 欧美mv和日韩mv的网站| 337p亚洲精品色噜噜噜| 精品1区2区3区| 色av成人天堂桃色av| 91蜜桃网址入口| 91亚洲国产成人精品一区二三| 国产suv精品一区二区三区| 国产一区二三区好的| 日韩专区在线视频| 日韩和的一区二区| 亚洲少妇30p| 亚洲精品免费视频| 一区二区三区四区在线免费观看 | 亚洲日本在线天堂| 国产精品久久久久久久第一福利| 久久久99精品免费观看| 精品久久一区二区三区| 久久这里只有精品6| 国产欧美一区在线| 亚洲欧美自拍偷拍色图| 中文字幕免费观看一区| 日本一区二区免费在线| 中文字幕一区二区三中文字幕| 国产精品对白交换视频 | 欧美视频一区二区在线观看| 91国产精品成人| 欧美亚洲国产一区二区三区va| 99久久99久久精品国产片果冻| 91国偷自产一区二区使用方法| 欧美一级一区二区| 国产亚洲成年网址在线观看| 亚洲私人影院在线观看| 五月天丁香久久| 国产精品18久久久| 欧美视频三区在线播放| 久久久www成人免费无遮挡大片| 一区视频在线播放| 热久久一区二区| 国产精品88888| 欧美亚洲一区二区在线| 欧美精品一区二区三区一线天视频 | 久久久久88色偷偷免费| 一区二区三区在线看| 久久99国产精品久久99| av不卡免费在线观看| 7777精品伊人久久久大香线蕉最新版 | 91国偷自产一区二区开放时间 | 国产精品1024| 在线电影欧美成精品| 日韩欧美在线影院| 中文字幕不卡在线| 捆绑调教美女网站视频一区| 国产盗摄女厕一区二区三区| 色综合久久天天| 欧美激情综合五月色丁香小说| 综合久久综合久久|