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

📄 logserial.cp

📁 UNIX/LINUX平台下面SMS网管原代码
💻 CP
字号:
#include <stdio.h>#include <stdlib.h>#include <string.h>#include <time.h>#include <memory.h>#include <sys/types.h>#include "apgloble.h"#include "bms_strcdef.h"#include "bms_micro.h"EXEC SQL INCLUDE SQLCA;EXEC SQL INCLUDE "bms_sql.h";#define  IVR                    1#define  AGENT                  2#define  TERMINAL               5extern void error_handler();extern void warning_handler();extern void notfound_handler();int DB_GenSerialNo(int *Active, BIG_STRC *bs);int DB_LogTransaction(int Active, BIG_STRC *bs);int DB_GenSerialNo(int *Active, BIG_STRC *bs){	EXEC SQL BEGIN DECLARE SECTION;	char WorkDate[10 + 1];	short CurrLog;	int  SerialNo;	EXEC SQL END DECLARE SECTION;        EXEC SQL WHENEVER SQLERROR CALL error_handler() ;        EXEC SQL WHENEVER SQLWARNING CALL warning_handler() ;        EXEC SQL WHENEVER NOT FOUND CALL notfound_handler() ;	EXEC SQL BEGIN TRANSACTION;	/*EXEC SQL LOCK TABLE daily_switch_ctl IN SHARE MODE;*/	EXEC SQL SELECT currlog, workdate		 INTO   :CurrLog, :WorkDate		 FROM   daily_switch_ctl;	if (sqlca.sqlcode) 	{		bms_trace("error2 = [%d]\n", sqlca.sqlcode);		fprintf(stdout, "%s\n", sqlca.sqlerrm.sqlerrmc);		EXEC SQL ROLLBACK TRANSACTION;		return FAILURE;	}	bms_trace("CurrLog[%d] [%s]", CurrLog, WorkDate);	        EXEC SQL EXEC :SerialNo = proc_getserialno;        if( SerialNo < 0 )        {                bms_trace("EXEC proc_getserialno failed.");                return FAILURE;        }	EXEC SQL COMMIT TRANSACTION;	strcpy(bs->serv_date, WorkDate);	bs->trade_serial = SerialNo;	*Active = CurrLog;	return SUCCESS;}int DB_LogTransaction(int ActiveLog, BIG_STRC *bs){	EXEC SQL BEGIN DECLARE SECTION ;	SQL_DAILY_TXLOG daily_txlog;	short 	active = 0;	int	trade_serial;	char	serv_time[19 + 1];	EXEC SQL END DECLARE SECTION;	FILE 	*fp;	char 	filename[128];	memset((char *)&daily_txlog, 0, sizeof(SQL_DAILY_TXLOG ));	bms_trace("active log = [%d]", ActiveLog);		memset(filename, 0, sizeof(filename));	sprintf(filename, "%s/log/dberr%08ld.log", getenv("HOME"), GetDate());	if(bs->side == IVR)	{		strcpy(bs->teller, "IVR");	}	else	{		bs->teller[5] = 0;	}	sprintf(serv_time, "%08ld %s", GetDate(), bs->serv_time);	strncpy(daily_txlog.teller, bs->teller, 5 );	daily_txlog.teller[strlen(daily_txlog.teller)] = 0;	daily_txlog.trade_serial = bs->trade_serial	;   	daily_txlog.otrade_serial = bs->otrade_serial	;   	strncpy(daily_txlog.flag , bs->flag, 1);	bs->flag[strlen(bs->flag)] = 0;	daily_txlog.side = bs->side		;   	daily_txlog.optcode = bs->optcode		;   	strncpy(daily_txlog.serv_type, bs->serv_type, 1);	daily_txlog.busin_type = bs->busin_type	;   	daily_txlog.trade_type = bs->trade_type	;   	daily_txlog.result = bs->result		;   	strncpy(daily_txlog.serv_date, bs->serv_date		, 10 );	sprintf(daily_txlog.serv_time, "%08ld %s", GetDate(), bs->serv_time);	strncpy(daily_txlog.auther, bs->auther,  5);	strncpy(daily_txlog.auth_no, bs->auth_no, strlen(bs->auth_no));	sprintf(daily_txlog.zoneno, "%05d", bs->zoneno);   	daily_txlog.ctype = bs->ctype;   	strncpy(daily_txlog.cid	, bs->cid, 11 );	daily_txlog.bid	= bs->bid		;   	strncpy(daily_txlog.debi_aid, bs->debi_aid,  4);	daily_txlog.debi_acct_type = bs->debi_acct_type	;   	strncpy(daily_txlog.debi_bank, bs->debi_bank, 20 );	strncpy(daily_txlog.debi_acct, bs->debi_acct, 30 );	daily_txlog.debi_acct[strlen(daily_txlog.debi_acct)] = 0;	daily_txlog.debi_curr = bs->debi_curr;   	strncpy(daily_txlog.cred_aid, bs->cred_aid,  4 );	daily_txlog.cred_acct_type = bs->cred_acct_type	;   	strncpy(daily_txlog.cred_bank, bs->cred_bank, 20 );	strncpy(daily_txlog.cred_acct, bs->cred_acct, 30 );	daily_txlog.cred_curr = bs->cred_curr;   	daily_txlog.debi_amt = bs->debi_amt;   	daily_txlog.cred_amt = bs->cred_amt;   	daily_txlog.debi_bala = bs->debi_bala;	daily_txlog.cred_bala = bs->cred_bala;	daily_txlog.bill_flg = bs->bill_flg;   	strncpy(daily_txlog.abstract, bs->abstract, 10 );	daily_txlog.deduct_type	= bs->deduct_type;   	daily_txlog.pz_type = bs->pz_type;   	strncpy(daily_txlog.pz_num, bs->pz_num, 30 );	daily_txlog.pz_num[strlen(daily_txlog.pz_num)]=0;	daily_txlog.source_typ = bs->source_typ	;   	daily_txlog.source_ser = bs->source_ser	;   		strncpy(daily_txlog.consign_no, bs->sonsign_no, 20 );	daily_txlog.purchase_num = bs->purchase_num;   	daily_txlog.detail_num= bs->detail_num;   		strncpy(daily_txlog.address, bs->address, 80 );	strncpy(daily_txlog.rate, bs->rate, 10 );	strncpy(daily_txlog.name, bs->name, 80 );	strncpy(daily_txlog.postcode, bs->postcode,  6 );	strncpy(daily_txlog.tele, bs->tele, 20 );	strncpy(daily_txlog.term_no, bs->term_no, 10 );	strncpy(daily_txlog.incall_num, bs->incall_num, 30 );	strncpy(daily_txlog.call_id, bs->call_id, 30 );	daily_txlog.money1 = bs->money1;   	daily_txlog.money2 = bs->money2;   	daily_txlog.money3 = bs->money3;   	daily_txlog.money4 = bs->money4;   	strncpy(daily_txlog.notes1, bs->notes1, 30 );	strncpy(daily_txlog.notes2, bs->notes2, 30 );	strncpy(daily_txlog.notes3, bs->notes3, 30 );	strncpy(daily_txlog.notes4, bs->notes4, 30 );	strncpy(daily_txlog.notes5, bs->notes5, 30 );	strncpy(daily_txlog.notes6, bs->notes6, 256);	strncpy(daily_txlog.notes7, bs->notes7, 256);	strncpy(daily_txlog.notes8, bs->notes8, 256);	strncpy(daily_txlog.notes9, bs->notes9, 256);	strncpy(daily_txlog.notes10, bs->notes10, 256);	strncpy(daily_txlog.city_no, bs->city_no, 20 );	strncpy(daily_txlog.trade_brch, bs->trade_brch, 20 );	strncpy(daily_txlog.date1, bs->date1, 10 );	strncpy(daily_txlog.date2, bs->date2, 10 );	strncpy(daily_txlog.record, bs->index, 50 );	EXEC SQL BEGIN TRANSACTION;	switch(ActiveLog)	{	case 1:        	EXEC SQL INSERT INTO daily_txlog1 VALUES( :daily_txlog); 		break;	case 2:        	EXEC SQL INSERT INTO daily_txlog2 VALUES( :daily_txlog); 		break;	default:		bms_trace("Invalid table flag[%d].", ActiveLog);                EXEC SQL ROLLBACK TRANSACTION;                return FAILURE;	}        if( sqlca.sqlcode != SUCCESS )        {		fp = fopen(filename, "ab+");		fprintf(fp, "error due to [%d]:%s|%d|%s|%s|%d|%d|%s|%d|%s|%.2lf\n", sqlca.sqlcode, bs->teller, bs->side, bs->serv_date, bs->serv_time, bs->optcode, bs->result, bs->debi_acct, bs->zoneno, bs->trade_brch, bs->debi_amt);		fclose(fp);                EXEC SQL ROLLBACK TRANSACTION;                return FAILURE;        }        EXEC SQL COMMIT TRANSACTION;;	return SUCCESS;}

⌨️ 快捷键说明

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