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

📄 sql.c

📁 程序实现了在ip协议之上加一层RUDP协议
💻 C
📖 第 1 页 / 共 2 页
字号:
         struct           {  /* ub2  */   unsigned short orasfnml;  /* text */   char       orasfnmc[70];           } orasfnm;                /* name of file containing SQL stmt    */  /* ub4 */ int   oraslnr;           /* line nr-within-file of SQL stmt     */  /* ub4 */ int   orahoc;            /* highest max open OraCurs requested  */  /* ub4 */ int   oramoc;            /* max open OraCursors required        */  /* ub4 */ int   oracoc;            /* current OraCursors open             */  /* ub4 */ int   oranor;            /* nr of OraCursor re-assignments      */  /* ub4 */ int   oranpr;            /* nr of parses                        */  /* ub4 */ int   oranex;            /* nr of executes                      */         };#ifndef ORACA_NONE#ifdef ORACA_STORAGE_CLASSORACA_STORAGE_CLASS struct oraca oraca#elsestruct oraca oraca#endif#ifdef ORACA_INIT         =         {         {'O','R','A','C','A',' ',' ',' '},         sizeof(struct oraca),         0,0,0,0,         {0,{0}},         {0,{0}},         0,         0,0,0,0,0,0         }#endif         ;#endif#endif/* end oraca.h *//*   EXEC SQL INCLUDE SQLDA; */ /* * $Header: sqlda.h 08-may-2002.12:13:42 apopat Exp $ sqlda.h  *//****************************************************************      The SQLDA descriptor definition                         **--------------------------------------------------------------**      VAX/3B Version                                          **                                                              ** Copyright (c) 1987, 2002, Oracle Corporation.  All rights reserved.  ****************************************************************//* NOTES  **************************************************************  ***                                                        ***  *** This file is SOSD.  Porters must change the data types ***  *** appropriately on their platform.  See notes/pcport.doc ***  *** for more information.                                  ***  ***                                                        ***  ***************************************************************//*  MODIFIED    apopat     05/08/02  - [2362423] MVS PE to make lines shorter than 79    apopat     07/31/99 -  [707588] TAB to blanks for OCCS    lvbcheng   10/27/98 -  change long to int for sqlda    lvbcheng   08/15/97 -  Move sqlda protos to sqlcpr.h    lvbcheng   06/25/97 -  Move sqlda protos to this file    jbasu      01/29/95 -  correct typo    jbasu      01/27/95 -  correct comment - ub2->sb2    jbasu      12/12/94 - Bug 217878: note this is an SOSD file    Morse      12/01/87 - undef L and S for v6 include files    Richey     07/13/87 - change int defs to long     Clare      09/13/84 - Port: Ch types to match SQLLIB structs    Clare      10/02/86 - Add ifndef SQLDA*/#ifndef SQLDA_#define SQLDA_ 1 #ifdef T# undef T#endif#ifdef F# undef F#endif#ifdef S# undef S#endif#ifdef L# undef L#endif struct SQLDA {  /* ub4    */ int        N; /* Descriptor size in number of entries        */  /* text** */ char     **V; /* Ptr to Arr of addresses of main variables   */  /* ub4*   */ int       *L; /* Ptr to Arr of lengths of buffers            */  /* sb2*   */ short     *T; /* Ptr to Arr of types of buffers              */  /* sb2**  */ short    **I; /* Ptr to Arr of addresses of indicator vars   */  /* sb4    */ int        F; /* Number of variables found by DESCRIBE       */  /* text** */ char     **S; /* Ptr to Arr of variable name pointers        */  /* ub2*   */ short     *M; /* Ptr to Arr of max lengths of var. names     */  /* ub2*   */ short     *C; /* Ptr to Arr of current lengths of var. names */  /* text** */ char     **X; /* Ptr to Arr of ind. var. name pointers       */  /* ub2*   */ short     *Y; /* Ptr to Arr of max lengths of ind. var. names*/  /* ub2*   */ short     *Z; /* Ptr to Arr of cur lengths of ind. var. names*/  }; typedef struct SQLDA SQLDA; #endif/* ----------------- *//* defines for sqlda *//* ----------------- */#define SQLSQLDAAlloc(arg1, arg2, arg3, arg4) sqlaldt(arg1, arg2, arg3, arg4) #define SQLSQLDAFree(arg1, arg2) sqlclut(arg1, arg2) struct {    int EquipId[50];    char EquipType[50][50];    long EquipIP[50]; }EquipData;int sql_error(){	/*写日志文件*/	return 0; 		/*当连接失败的时候返回0*/}int ConnDB() /*与数据库建立连接*/{  int result=1;  strcpy(username,"MobiOne"); /*数据库用户名*/  strcpy(password,"reesion"); /*数据库密码*/  strcpy(service,"ora10"); /*数据库密码*/  /* EXEC SQL CONNECT :username IDENTIFIED BY :password using :service; */ {  struct sqlexd sqlstm;  sqlstm.sqlvsn = 12;  sqlstm.arrsiz = 4;  sqlstm.sqladtp = &sqladt;  sqlstm.sqltdsp = &sqltds;  sqlstm.iters = (unsigned int  )10;  sqlstm.offset = (unsigned int  )5;  sqlstm.cud = sqlcud0;  sqlstm.sqlest = (unsigned char  *)&sqlca;  sqlstm.sqlety = (unsigned short)256;  sqlstm.occurs = (unsigned int  )0;  sqlstm.sqhstv[0] = (         void  *)username;  sqlstm.sqhstl[0] = (unsigned int  )20;  sqlstm.sqhsts[0] = (         int  )20;  sqlstm.sqindv[0] = (         void  *)0;  sqlstm.sqinds[0] = (         int  )0;  sqlstm.sqharm[0] = (unsigned int  )0;  sqlstm.sqadto[0] = (unsigned short )0;  sqlstm.sqtdso[0] = (unsigned short )0;  sqlstm.sqhstv[1] = (         void  *)password;  sqlstm.sqhstl[1] = (unsigned int  )20;  sqlstm.sqhsts[1] = (         int  )20;  sqlstm.sqindv[1] = (         void  *)0;  sqlstm.sqinds[1] = (         int  )0;  sqlstm.sqharm[1] = (unsigned int  )0;  sqlstm.sqadto[1] = (unsigned short )0;  sqlstm.sqtdso[1] = (unsigned short )0;  sqlstm.sqhstv[2] = (         void  *)service;  sqlstm.sqhstl[2] = (unsigned int  )20;  sqlstm.sqhsts[2] = (         int  )20;  sqlstm.sqindv[2] = (         void  *)0;  sqlstm.sqinds[2] = (         int  )0;  sqlstm.sqharm[2] = (unsigned int  )0;  sqlstm.sqadto[2] = (unsigned short )0;  sqlstm.sqtdso[2] = (unsigned short )0;  sqlstm.sqphsv = sqlstm.sqhstv;  sqlstm.sqphsl = sqlstm.sqhstl;  sqlstm.sqphss = sqlstm.sqhsts;  sqlstm.sqpind = sqlstm.sqindv;  sqlstm.sqpins = sqlstm.sqinds;  sqlstm.sqparm = sqlstm.sqharm;  sqlstm.sqparc = sqlstm.sqharc;  sqlstm.sqpadto = sqlstm.sqadto;  sqlstm.sqptdso = sqlstm.sqtdso;  sqlstm.sqlcmax = (unsigned int )100;  sqlstm.sqlcmin = (unsigned int )2;  sqlstm.sqlcincr = (unsigned int )1;  sqlstm.sqlctimeout = (unsigned int )0;  sqlstm.sqlcnowait = (unsigned int )0;  sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);}  /* EXEC SQL WHENEVER SQLERROR DO sql_error(); */   return result; /* 0表示数据库连接成功 还没考虑DB连接失败的*/}/*读相应的表,取出具体内容.读出来的设备信息应该放在全局变量中,供包发送的时候用*/int SelectEquipTable(int EquipId[],char EquipType[],long EquipIP[]) {       /* EXEC SQL DECLARE c1 CURSOR FOR       SELECT EQUIPID,EQUIPTYPE,EQUIPIP FROM LOCALEQUIP; */ 	/* EXEC SQL OPEN c1; */ { struct sqlexd sqlstm; sqlstm.sqlvsn = 12; sqlstm.arrsiz = 4; sqlstm.sqladtp = &sqladt; sqlstm.sqltdsp = &sqltds; sqlstm.stmt = sq0002; sqlstm.iters = (unsigned int  )1; sqlstm.offset = (unsigned int  )36; sqlstm.selerr = (unsigned short)1; sqlstm.cud = sqlcud0; sqlstm.sqlest = (unsigned char  *)&sqlca; sqlstm.sqlety = (unsigned short)256; sqlstm.occurs = (unsigned int  )0; sqlstm.sqcmod = (unsigned int )0; sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn); if (sqlca.sqlcode < 0) sql_error();}	/* EXEC SQL FETCH c1	into :EquipData; */ { struct sqlexd sqlstm; sqlstm.sqlvsn = 12; sqlstm.arrsiz = 4; sqlstm.sqladtp = &sqladt; sqlstm.sqltdsp = &sqltds; sqlstm.iters = (unsigned int  )50; sqlstm.offset = (unsigned int  )51; sqlstm.selerr = (unsigned short)1; sqlstm.cud = sqlcud0; sqlstm.sqlest = (unsigned char  *)&sqlca; sqlstm.sqlety = (unsigned short)256; sqlstm.occurs = (unsigned int  )0; sqlstm.sqfoff = (           int )0; sqlstm.sqfmod = (unsigned int )2; sqlstm.sqhstv[0] = (         void  *)EquipData.EquipId; sqlstm.sqhstl[0] = (unsigned int  )sizeof(int); sqlstm.sqhsts[0] = (         int  )sizeof(int); sqlstm.sqindv[0] = (         void  *)0; sqlstm.sqinds[0] = (         int  )0; sqlstm.sqharm[0] = (unsigned int  )0; sqlstm.sqharc[0] = (unsigned int   *)0; sqlstm.sqadto[0] = (unsigned short )0; sqlstm.sqtdso[0] = (unsigned short )0; sqlstm.sqhstv[1] = (         void  *)EquipData.EquipType; sqlstm.sqhstl[1] = (unsigned int  )50; sqlstm.sqhsts[1] = (         int  )50; sqlstm.sqindv[1] = (         void  *)0; sqlstm.sqinds[1] = (         int  )0; sqlstm.sqharm[1] = (unsigned int  )0; sqlstm.sqharc[1] = (unsigned int   *)0; sqlstm.sqadto[1] = (unsigned short )0; sqlstm.sqtdso[1] = (unsigned short )0; sqlstm.sqhstv[2] = (         void  *)EquipData.EquipIP; sqlstm.sqhstl[2] = (unsigned int  )sizeof(long); sqlstm.sqhsts[2] = (         int  )sizeof(long); sqlstm.sqindv[2] = (         void  *)0; sqlstm.sqinds[2] = (         int  )0; sqlstm.sqharm[2] = (unsigned int  )0; sqlstm.sqharc[2] = (unsigned int   *)0; sqlstm.sqadto[2] = (unsigned short )0; sqlstm.sqtdso[2] = (unsigned short )0; sqlstm.sqphsv = sqlstm.sqhstv; sqlstm.sqphsl = sqlstm.sqhstl; sqlstm.sqphss = sqlstm.sqhsts; sqlstm.sqpind = sqlstm.sqindv; sqlstm.sqpins = sqlstm.sqinds; sqlstm.sqparm = sqlstm.sqharm; sqlstm.sqparc = sqlstm.sqharc; sqlstm.sqpadto = sqlstm.sqadto; sqlstm.sqptdso = sqlstm.sqtdso; sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn); if (sqlca.sqlcode < 0) sql_error();}	 	 if(sqlca.sqlcode!=0&&sqlca.sqlcode!=100&&sqlca.sqlcode!=1403)		 {			 return 0; 	/*查询失败*/		 }		 count=sqlca.sqlerrd[2]; 	/*总共有多少条记录*/		 for(id=0;id<count;id++)		 {					       /* EXEC SQL FETCH c1 INTO :EquipData; */ {         struct sqlexd sqlstm;         sqlstm.sqlvsn = 12;         sqlstm.arrsiz = 4;         sqlstm.sqladtp = &sqladt;         sqlstm.sqltdsp = &sqltds;         sqlstm.iters = (unsigned int  )50;         sqlstm.offset = (unsigned int  )78;         sqlstm.selerr = (unsigned short)1;         sqlstm.cud = sqlcud0;         sqlstm.sqlest = (unsigned char  *)&sqlca;         sqlstm.sqlety = (unsigned short)256;         sqlstm.occurs = (unsigned int  )0;         sqlstm.sqfoff = (           int )0;         sqlstm.sqfmod = (unsigned int )2;         sqlstm.sqhstv[0] = (         void  *)EquipData.EquipId;         sqlstm.sqhstl[0] = (unsigned int  )sizeof(int);         sqlstm.sqhsts[0] = (         int  )sizeof(int);         sqlstm.sqindv[0] = (         void  *)0;         sqlstm.sqinds[0] = (         int  )0;         sqlstm.sqharm[0] = (unsigned int  )0;         sqlstm.sqharc[0] = (unsigned int   *)0;         sqlstm.sqadto[0] = (unsigned short )0;         sqlstm.sqtdso[0] = (unsigned short )0;         sqlstm.sqhstv[1] = (         void  *)EquipData.EquipType;         sqlstm.sqhstl[1] = (unsigned int  )50;         sqlstm.sqhsts[1] = (         int  )50;         sqlstm.sqindv[1] = (         void  *)0;         sqlstm.sqinds[1] = (         int  )0;         sqlstm.sqharm[1] = (unsigned int  )0;         sqlstm.sqharc[1] = (unsigned int   *)0;         sqlstm.sqadto[1] = (unsigned short )0;         sqlstm.sqtdso[1] = (unsigned short )0;         sqlstm.sqhstv[2] = (         void  *)EquipData.EquipIP;         sqlstm.sqhstl[2] = (unsigned int  )sizeof(long);         sqlstm.sqhsts[2] = (         int  )sizeof(long);         sqlstm.sqindv[2] = (         void  *)0;         sqlstm.sqinds[2] = (         int  )0;         sqlstm.sqharm[2] = (unsigned int  )0;         sqlstm.sqharc[2] = (unsigned int   *)0;         sqlstm.sqadto[2] = (unsigned short )0;         sqlstm.sqtdso[2] = (unsigned short )0;         sqlstm.sqphsv = sqlstm.sqhstv;         sqlstm.sqphsl = sqlstm.sqhstl;         sqlstm.sqphss = sqlstm.sqhsts;         sqlstm.sqpind = sqlstm.sqindv;         sqlstm.sqpins = sqlstm.sqinds;         sqlstm.sqparm = sqlstm.sqharm;         sqlstm.sqparc = sqlstm.sqharc;         sqlstm.sqpadto = sqlstm.sqadto;         sqlstm.sqptdso = sqlstm.sqtdso;         sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);         if (sqlca.sqlcode < 0) sql_error();} 			EquipId[id]=EquipData.EquipId[id];					EquipType[id]=EquipData.EquipType[id][0];                    EquipIP[id]= EquipData.EquipIP[id];		 }		 /* EXEC SQL CLOSE c1; */ {   struct sqlexd sqlstm;   sqlstm.sqlvsn = 12;   sqlstm.arrsiz = 4;   sqlstm.sqladtp = &sqladt;   sqlstm.sqltdsp = &sqltds;   sqlstm.iters = (unsigned int  )1;   sqlstm.offset = (unsigned int  )105;   sqlstm.cud = sqlcud0;   sqlstm.sqlest = (unsigned char  *)&sqlca;   sqlstm.sqlety = (unsigned short)256;   sqlstm.occurs = (unsigned int  )0;   sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);   if (sqlca.sqlcode < 0) sql_error();}	return count;}

⌨️ 快捷键说明

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