📄 nokdata.pc
字号:
#include <stdio.h>#include <stdlib.h>#include <string.h>#include <sys/types.h>#include <sys/socket.h>#include <netinet/in.h>#include <varargs.h>#include <unistd.h>#include <time.h>#include <sqlca.h>#include <malloc.h>#include "../include/shmmsg.h"#define USRNAME "scott"#define PASSWD "tiger"#define ORASID "omcr"#define WRITELEN 256EXEC SQL BEGIN DECLARE SECTION; SQL_CURSOR out_fx_alarm; SQL_CURSOR out_new_fx_alarm; varchar rtn[5]; varchar rtn1[5]; varchar site_number[11];EXEC SQL END DECLARE SECTION;struct comshm * GetShm();void Makepkt_snd(struct Pack_buffs *sphead);int MakePack(struct Pack_buffs *sphead ,struct pktstru * hed,struct Packet * opket);main(int argc,char**argv){ struct Pack_buffs * sp,*spt,*sphead,*spheader; sp=(struct Pack_buffs *)malloc(sizeof(struct Pack_buffs)); sp->next=NULL; sphead=sp; struct pack_buffs s_pack_buffs; time_t start,finish; double elapsed_time; time(&start); time(&finish); memset(&s_pack_buffs,'\0',sizeof(struct pack_buffs)); int tcancel=0,tnew=0; char consec_nbr[11]; char int_id[11]; char alarm_status[2]; char alarm_time[15]; char cancel_time[15]; char alarm_number[3]; char severity[2]; char testname[21]; int length; EXEC SQL CONNECT :USRNAME identified by :PASSWD; if (sqlca.sqlcode!=0) s_debug("sqlcode =[%d]",sqlca.sqlcode); else{ s_debug("\n------------ nokdata.pc begin ------------\n"); s_debug("connect success=[%d]\n",sqlca.sqlcode); EXEC SQL ALLOCATE :out_fx_alarm; EXEC SQL ALLOCATE :out_new_fx_alarm; EXEC SQL EXECUTE begin nokia_pack.nokia_get_notcancel(:out_fx_alarm,:rtn); nokia_pack.nokia_get_new(:out_new_fx_alarm,:rtn1); end; end-exec; #ifdef TEST s_debug("rtn=%s",rtn.arr); s_debug("rtn1=%s",rtn1.arr); #endif if(sqlca.sqlcode==0){ if(strncmp(rtn.arr,"1000",4)==0) { EXEC SQL WHENEVER NOTFOUND DO break; for (;;) { EXEC SQL FETCH :out_fx_alarm INTO :s_pack_buffs; spt=(struct Pack_buffs *)malloc(sizeof(struct Pack_buffs)); spt->next=NULL; sp->next=spt; sp=spt; memcpy(&(sp->pack_buffs),&s_pack_buffs,sizeof(struct pack_buffs)); s_debug("\n sp->pack_buffs.name=%s",sp->pack_buffs.name); strcpy(consec_nbr,sp->pack_buffs.b_consec_nbr); strcpy(alarm_status,sp->pack_buffs.b_alarm_status); strcpy(cancel_time,sp->pack_buffs.b_cancel_time); strcpy(testname,sp->pack_buffs.name); s_debug("\ncancel_time=%s",cancel_time); #ifdef TEST s_debug("\n TESTname=%s",testname); s_debug("\n Stelen TESTname=%d",strlen(testname)); #endif EXEC SQL EXECUTE begin nokdata_cancel(:consec_nbr,:alarm_status,:cancel_time,:testname,:site_number); end; end-exec; #ifdef TEST s_debug("\nsite_number.arr=%s!",site_number.arr); site_number.arr[10]='\0'; s_debug("\nsite_number.arr=%s!",site_number.arr); #endif length=strlen(site_number.arr); site_number.arr[length-1]='\0'; if(sqlca.sqlcode==0) { strcpy(sp->pack_buffs.site_no,site_number.arr); s_debug("\n###Sp->pack_buffs.site_no=%s###",sp->pack_buffs.site_no); EXEC SQL COMMIT ; } else { s_debug("nok[%s]->sqlcode=[%d]\n",sqlca.sqlcode); EXEC SQL ROLLBACK ; } memset(&s_pack_buffs,'\0',sizeof(struct pack_buffs)); } } else s_debug("\n THERE ARE NO MESSAGES HAVE BEEN CANCELED!"); if(strncmp(rtn1.arr,"1000",4)==0) { EXEC SQL WHENEVER NOTFOUND DO break; for(;;) { EXEC SQL FETCH :out_new_fx_alarm INTO :s_pack_buffs; spt=(struct Pack_buffs *)malloc(sizeof(struct Pack_buffs)); spt->next=NULL; sp->next=spt; sp=spt; memcpy(&(sp->pack_buffs),&s_pack_buffs,sizeof(struct pack_buffs)); strcpy(consec_nbr,sp->pack_buffs.b_consec_nbr); strcpy(alarm_number,sp->pack_buffs.b_alarm_number); strcpy(int_id,sp->pack_buffs.b_int_id); strcpy(alarm_status,sp->pack_buffs.b_alarm_status); strcpy(alarm_time,sp->pack_buffs.b_alarm_time); strcpy(cancel_time,sp->pack_buffs.b_cancel_time); strcpy(severity,sp->pack_buffs.b_severity); strcpy(testname,sp->pack_buffs.name); #ifdef TEST s_debug("\n consec_nbr=%s",consec_nbr); s_debug("\n int_id=%s",int_id); s_debug("\n alarm_status##=%s",sp->pack_buffs.b_alarm_status); s_debug("\n alarm_status=%s",alarm_status); s_debug("\n alarm_time=%s",alarm_time); s_debug("\n cancel_time=%s",cancel_time); s_debug("\n alarm_number_###=%s",sp->pack_buffs.b_alarm_number); s_debug("\n alarm_number=%s",alarm_number); s_debug("\n severity=%s",severity); s_debug("\n TESTname=%s",testname); s_debug("\n p->pack_buffs.name=%s",sp->pack_buffs.name); s_debug("\n Stelen TESTname=%d",strlen(testname)); #endif EXEC SQL EXECUTE begin nokdata_new(:consec_nbr,:int_id,:alarm_status,:alarm_time,:cancel_time,\ :alarm_number,:severity,:testname,:site_number); /*nokdata_new('0','0','0','20050706103430','0','0','0','zhongshu',:site_number);*/ end; end-exec; #ifdef TEST s_debug("\nsite_number.arr=%s!",site_number.arr); #endif length=strlen(site_number.arr); site_number.arr[length-1]='\0'; if(sqlca.sqlcode==0) { strcpy(sp->pack_buffs.site_no,site_number.arr); s_debug("\n###Sp->pack_buffs.site_no=%s###",sp->pack_buffs.site_no); EXEC SQL COMMIT ; } else { s_debug("nok[%s]->sqlcode=[%d]\n",sqlca.sqlcode); EXEC SQL ROLLBACK ; } memset(&s_pack_buffs,'\0',sizeof(struct pack_buffs)); } } else s_debug("\n THERE ARE NO NEW MESSAGES !"); EXEC SQL WHENEVER SQLERROR CONTINUE; EXEC SQL CLOSE :out_fx_alarm; EXEC SQL CLOSE :out_new_fx_alarm; EXEC SQL commit work release; if(strncmp(rtn.arr,"1000",4)==0||strncmp(rtn1.arr,"1000",4)==0) Makepkt_snd(sphead); else v_debug("\nDON'T SEND MESSAGES!"); free(sphead); } else{ s_debug("nok[%s]->sqlcode=[%d]\n",sqlca.sqlcode); EXEC SQL ROLLBACK RELEASE; } } EXEC SQL commit work release; s_debug("\n------------ nokdata.c end ------------\n"); time(&finish); elapsed_time = difftime(finish, start); s_debug("\nNokia Program takes %6.2f seconds.\n", elapsed_time);}int MakePack(struct Pack_buffs *sphead ,struct pktstru *hed,struct Packet * opket){ int len=0; int leng=0;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -