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

📄 sp_file.pc.bak

📁 其他 其他 其他 其他 其他 其他 其他 其他 其他 其他
💻 BAK
字号:
#include <stdio.h>#include <string.h>#include <stdlib.h>#include <sqlca.h>#include <oraca.h>#include <signal.h>#include "sp_file.h"#include "util.h"#include "acct_util.h"#define  TMP_SP_FILE_PATH	"../tmp_file/"#define  SP_FILE_PATH      "../sp_file/"int fileAttr = 0;char connStr[32];void main(int argc, char** argv){  int  ret;  int  pid;  char gs_local_net[7];  int li_ret;       memset(connStr,0x00,sizeof(connStr));    if(argc != 3){	printf("用法:命令 文件属性(1掌上股市   数据库链接串\n");	return;  }    fileAttr = atoi(argv[1]);  strcpy(connStr,argv[2]);	    strcpy(gs_local_net,"831");  li_ret = init_sqlca_info(connStr,gs_local_net);  if(li_ret != 0)  {	printf("以公共用户登录数据库,初始化全局变量出错!");	return;  }  	  pid = fork();  if(pid == -1){  	printf("创建企业新时空进程错误!\n");  	exit(-1);  }  if(pid > 0)  	exit(0);  	  pid = setsid();  if(pid == -1){  	printf("改变企业新时空进程属性错误!\n");  	exit(-1);  }  /*设置UNIX下的信号无效*/  signal(SIGINT, SIG_IGN);  signal(SIGTERM, SIG_IGN);  signal(SIGQUIT, SIG_IGN);  signal(SIGCLD, SIG_IGN);   if(fileAttr == 1)		xsk_file();  else	printf("文件属性参数无效\n");	    return;}/*企业新时空*/void xsk_file(){  int  ret;  char totalRecord[20];     char fileDateTime[15];  char fileName[128];  char command[32];    char deviceNumber[65];   char status_code[6];  char remarks[20];  int record_seri =0;    FILE *fd = NULL;    memset(command,0x00,sizeof(command));  memset(fileDateTime,0x00,sizeof(fileDateTime));  memset(fileName,0x00,sizeof(fileName));    EXEC SQL WHENEVER SQLERROR DO sql_error("function:dinner_send");  EXEC SQL CONNECT :sqlca_ib.log_id IDENTIFIED BY :sqlca_ib.log_pass USING :sqlca_ib.serv_name;    EXEC SQL SELECT TO_CHAR(SYSDATE,'YYYYMMDDHH24MISS') INTO :fileDateTime FROM DUAL;  PackString(fileDateTime);      sprintf(fileName,"%sNCF-%s.req",TMP_SP_FILE_PATH,fileDateTime);  PackString(fileName);  if((fd = fopen(fileName,"a")) == NULL){    printf("open file error\n");    return;  }              	/*EXEC SQL DECLARE cur_smg_sp CURSOR for		select device_number,decode(status_code,'101','1','0'),decode(status_code,'101','开机','停机')		from info_busi		where  device_number like '89234%' and flag = '0' and tele_type = 'LOCAL';*/		  EXEC SQL DECLARE cur_smg_sp CURSOR for	  select a.device_number,decode(b.status_code,'101','1','0'),decode(b.status_code,'101','开机','停机') from info_corporation a,info_local b	 		where a.flag = '0' and a.user_no = b.user_no and b.flag = '0';        EXEC SQL OPEN cur_smg_sp;  while(1){  	memset(deviceNumber,0x00,sizeof(deviceNumber));  	  	memset(status_code,0x00,sizeof(status_code));  	memset(remarks,0x00,sizeof(remarks));  			EXEC SQL FETCH cur_smg_sp 					INTO :deviceNumber,						 :status_code,						 :remarks;		if(sqlca.sqlcode == 1403)	break;				record_seri++;			PackString(deviceNumber);		PackString(status_code);		PackString(remarks);				fprintf(fd,"%d|%s|%s|%s|%s|\n",		record_seri,deviceNumber,status_code,fileDateTime,remarks);	fflush(fd);  }    EXEC SQL CLOSE cur_smg_sp;		      fprintf(fd,"%s\n","END");	fflush(fd);	  fclose(fd);    WriteLog(" 创建企业新时空文件 success\n");    sprintf(command,"mv %s/*.* %s/",TMP_SP_FILE_PATH,SP_FILE_PATH);  system(command);    return;      }void sql_error(char *msg){	EXEC SQL WHENEVER SQLERROR CONTINUE;	printf("%s:%s\n",msg,sqlca.sqlerrm.sqlerrmc);    EXEC SQL ROLLBACK RELEASE;	exit(1);}

⌨️ 快捷键说明

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