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

📄 simutil.c

📁 仿真测试接口程序。根据电总《用户接入网管理功能与管理接口技术规范》之《与112集中受理系统接口规范》
💻 C
📖 第 1 页 / 共 2 页
字号:
				dbbind(dbproc, 4, REALBIND, 12, (BYTE *) & v_lower);				dbbind(dbproc, 5, STRINGBIND, 0, (BYTE *) sumcode);				while (dbnextrow(dbproc) != NO_MORE_ROWS)				{					RemoveWhitespace(item);					RemoveWhitespace(sumcode);					strcpy((p->compare_table + c_rows)->item, item);					(p->compare_table + c_rows)->range = range[0];					(p->compare_table + c_rows)->upper = v_upper;					(p->compare_table + c_rows)->lower = v_lower;					strcpy((p->compare_table + c_rows)->sumcode, sumcode);					if (strcmp(item, olditem) != 0)					{						strcpy(olditem, item);						i_rows++;					}					/*					   strncpy((p->compare_table+c_rows)->item,(DBCHAR *)dbdata(dbproc,1),(len=dbdatlen(dbproc,1)));					   (p->compare_table+c_rows)->item[len]=0;					   RemoveWhitespace((p->compare_table+c_rows)->item);					   if(strcmp(item,(p->compare_table+c_rows)->item)!=0){					   strcpy(item,(p->compare_table+c_rows)->item);					   i_rows++;					   }					   strncpy(temp,(DBCHAR *)dbdata(dbproc,2),(len=dbdatlen(dbproc,2)));					   temp[len]=0;					   (p->compare_table+c_rows)->range=temp[0];					   strncpy(temp,(DBREAL *)dbdata(dbproc,3),(len=dbdatlen(dbproc,3)));					   temp[len]=0;					   printf("temp = %s\n",temp);					   (p->compare_table+c_rows)->upper=atof(temp);					   (p->compare_table+c_rows)->lower=*(DBREAL *)dbdata(dbproc,4);					   printf("upper = %f,lower=%f,c_rows=%d\n",(p->compare_table+c_rows)->upper,(p->compare_table+c_rows)->lower,c_rows);					   strncpy((p->compare_table+c_rows)->sumcode,(DBCHAR *)dbdata(dbproc,5),(len=dbdatlen(dbproc,5)));					   (p->compare_table+c_rows)->sumcode[len]=0;					   RemoveWhitespace((p->compare_table+c_rows)->sumcode);					 */					c_rows++;				}			}		}		if (c_rows == 0)			free(p->compare_table);		else			ret_val = 0;/*************index_head******************/		if ((p->index_head = malloc(sizeof(INDEXHEAD))) == NULL)		{			freeCompareTable();			return (-1);		}		p->index_head->count = i_rows;		if ((p->index_head->comp_index = malloc(sizeof(COMPINDEX) * p->index_head->count)) == NULL)		{			freeCompareTable();			return -1;		}		i = j = 0;		while (i < c_rows)		{			strcpy(item, (p->compare_table + i)->item);			first = i;			i++;			while ((strcmp(item, (p->compare_table + i)->item) == 0) && (i < c_rows))				i++;			last = i - 1;			strcpy((p->index_head->comp_index + j)->item_str, item);			(p->index_head->comp_index + j)->first = first;			(p->index_head->comp_index + j)->last = last;			j++;		}		p->index_head->count = j;/*   printf("j=%d,index:\n",j);   for (i=0;i<p->index_head->count;++i)   {   printf("%d,%s,%d,%d\n",(p->index_head->comp_index+i)->item,   (p->index_head->comp_index+i)->item_str,   (p->index_head->comp_index+i)->first,   (p->index_head->comp_index+i)->last );   }   printf("compare_table:\n");   for (i=0;i<p->index_head->count;++i)   {   printf("%s,%d,%f,%f,%s\n",(p->compare_table+i)->item   ,(p->compare_table+i)->range   ,(p->compare_table+i)->upper   ,(p->compare_table+i)->lower   ,(p->compare_table+i)->sumcode );   } */		++p;	}	return (ret_val);}int freeCompareTable(){	COMPRULEDATA *p;	p = comp_rule_data;	while (p->SwitchName[0] != '\0')	{		free(p->index_head->comp_index);		free(p->index_head);		free(p->compare_table);		++p;	}	return 0;}int err_handler(								 DBPROCESS * dbproc,								 int severity,								 int dberr,								 int oserr,								 char *dberrstr,								 char *oserrstr){	if ((dbproc == NULL) || DBDEAD(dbproc))		return INT_EXIT;	else	{		fprintf(stderr, "DB-Library error : \n\t%s\n", dberrstr);		if (oserr != DBNOERR)			fprintf(stderr, "Operating-system error:\n\t%s\n", oserrstr);		return (INT_CANCEL);	}}#ifdef SYBASE_ENVint msg_handler(								 DBPROCESS * dbproc,								 DBINT msgno,								 int msgstate,								 int severity,								 char *msgtext,								 char *srvname,								 char *procname,								 DBUSMALLINT line){	fprintf(stderr, "Msg %ld,Level %d,State %d\n", msgno, severity, msgstate);	if (strlen(srvname) > 0)		fprintf(stderr, "Server '%s',", srvname);	if (strlen(procname) > 0)		fprintf(stderr, "Procedure '%s',", procname);	if (line > 0)		fprintf(stderr, "Line %d", line);	fprintf(stderr, "\n\t%s\n", msgtext);	return 0;}#elseint msg_handler  (		DBPROCESS * dbproc,		DBINT msgno,		int msgstate,		int severity,		LPSTR msgtext){	/* printf("SQL Server Message: %s\n",msgtext); */	return (0);}#endifvoid getDBmsg(char *user, char *pwd, char *app, char *host, char *db){	FILE *fp;	char temp_buf[80], title[80], *content;	int len;	if ((fp = fopen("simu112.ini", "rb")) == NULL)		return;	while (!feof(fp))	{		if (fgets(temp_buf, 79, fp) != NULL)		{			if ((content = strchr(temp_buf, '=')) == NULL)				continue;			len = content - temp_buf;			strncpy(title, temp_buf, len);			title[len] = '\0';			content++;			if (strcmp("user", title) == 0)			{				strcpy(user, content);/*        printf("user:%s\n",user); */				RemoveWhitespace(user);				continue;			}			if (strcmp("pwd", title) == 0)			{				strcpy(pwd, content);/*        printf("pwd:%s\n",pwd); */				RemoveWhitespace(pwd);				continue;			}			if (strcmp("app", title) == 0)			{				strcpy(app, content);/*        printf("app:%s\n",app); */				RemoveWhitespace(app);				continue;			}			if (strcmp("dbhost", title) == 0)			{				strcpy(host, content);/*        printf("host:%s\n",host); */				RemoveWhitespace(host);				continue;			}			if (strcmp("dbname", title) == 0)			{				strcpy(db, content);				printf("db:%s\n", db);				RemoveWhitespace(db);				continue;			}		}	}}/**************************************************** *return <0:fail to load                            * *        0:sucess                                  * ****************************************************/int loadSetTable(){	DBPROCESS *dbproc;						/*the connection with SQL server */	LOGINREC *login;							/*the login information */	char user_name[20] = "reltec112";	char user_pwd[20] = "";	char app_name[20] = "simu112";	char db_host[20] = "C_CATS112";	char db_name[20] = "REL112";	int ret = 0;/*  char interfaces[50]="/usr/sybase/interfaces"; */	getDBmsg(user_name, user_pwd, app_name, db_host, db_name);	fqgetpass(user_pwd);	if (dbinit() == FAIL)	{		fLogInfo("Dbinit error\n");		ret = -1;		goto loadSetTable_exit;	}/*   dberrhandle(err_handler);   dbmsghandle(msg_handler); *//*  dbsetifile(interfaces); */	if ((login = dblogin()) == NULL)	{		ret = -2;		fLogInfo("Dblogin error\n");		goto loadSetTable_exit;	}	if (DBSETLUSER(login, user_name) == FAIL)	{		ret = -3;		fLogInfo("Dblogin error\n");		goto loadSetTable_exit;	}	if (DBSETLPWD(login, user_pwd) == FAIL)	{		ret = -4;		fLogInfo("Dblogin error\n");		goto loadSetTable_exit;	}	if (DBSETLAPP(login, app_name) == FAIL)	{		ret = -5;		fLogInfo("Dblogin error\n");		goto loadSetTable_exit;	}	if ((dbproc = dbopen(login, NULL)) == NULL)	{		ret = -6;		fLogInfo("Dblogin error\n");		goto loadSetTable_exit;	}	if (dbuse(dbproc, db_name) != FAIL)	{		if ((ret = setRouteTable(dbproc)) == 0)		{			if (setCompareTable(dbproc) < 0)			{				dbexit();				fLogInfo("Set CompareTable error\n");				ret = -7;				goto loadSetTable_exit;			}			else				ret = 0;		}		else		{			ret += -7;			goto loadSetTable_exit;		}	}	else	{		ret = -12;	}loadSetTable_exit:	dbexit();	return ret;}int freeSetTable(){	freeRouteTable();	freeCompareTable();	return 0;}int fqgetpass(char *PASSWORD){	LOGINREC *login;	DBPROCESS *dbproc;	RETCODE re, i;	int l;	if (dbinit() != SUCCEED)		return -1;	if ((login = dblogin()) == NULL)		return -2;	DBSETLUSER(login, "root112");	DBSETLPWD(login, "IamR0112");	if ((dbproc = dbopen(login, NULL)) == NULL)		return -3;	dbloginfree(login);	dbcmd(dbproc, "select rtrim(reverse(Column2)) from SYSTEM112 where Column1='1'");	dbsqlexec(dbproc);	re = dbresults(dbproc);	if (re == FAIL)		return (-4);	else	{		while (dbnextrow(dbproc) != NO_MORE_ROWS)		{			l = (int) dbdatlen(dbproc, 1);			strncpy(PASSWORD, (DBCHAR *) dbdata(dbproc, 1), l);			*(PASSWORD + l) = 0;		}	}	dbexit();	return 0;}void f_split_addr_port(char *str_addr_port, char *addr, char *port){	char *p, *q;	addr[0] = '\0';	port[0] = '\0';	p = str_addr_port;	q = addr;	while (*p)										/* get address */	{		if (*p == ',')			break;		*q = *p;		++q;		++p;	}	*q = '\0';	if (*p != '\0')		++p;	q = port;	while (*p)										/* get port */	{		*q = *p;		++q;		++p;	}	*q = '\0';}static char *StringToupper(char *p){	char *p1;	for (p1 = p; *p1 != '\000'; p1++)	{		*p1 = (char) toupper(*p1);	}	return p;}

⌨️ 快捷键说明

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