📄 simutil.c
字号:
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 + -