/* Result Sets Interface */ #ifndef SQL_CRSR # define SQL_CRSR struct sql_cursor { unsigned int curocn; void *ptr1; void *ptr2; unsigned long magic; }; typedef struct sql_cursor sql_cursor; typedef struct sql_cursor SQL_CURSOR; #endif /* SQL_CRSR */ /* Thread Safety */ typedef void * sql_context; typedef void * SQL_CONTEXT; /* Object support */ struct sqltvn { unsigned char *tvnvsn; unsigned short tvnvsnl; unsigned char *tvnnm; unsigned short tvnnml; unsigned char *tvnsnm; unsigned short tvnsnml; }; typedef struct sqltvn sqltvn; struct sqladts { unsigned int adtvsn; unsigned short adtmode; unsigned short adtnum; sqltvn adttvn[1]; }; typedef struct sqladts sqladts; static struct sqladts sqladt = { 1,1,0, }; /* Binding to PL/SQL Records */ struct sqltdss { unsigned int tdsvsn; unsigned short tdsnum; unsigned char *tdsval[1]; }; typedef struct sqltdss sqltdss; static struct sqltdss sqltds = { 1, 0, }; /* File name & Package Name */ struct sqlcxp { unsigned short fillen; char filnam[20]; }; static struct sqlcxp sqlfpn = { 19, "Populate_Station.pc" }; static unsigned long sqlctx = 41797019; static struct sqlexd { unsigned int sqlvsn; unsigned int arrsiz; unsigned int iters; unsigned int offset; unsigned short selerr; unsigned short sqlety; unsigned int unused; short *cud; unsigned char *sqlest; char *stmt; sqladts *sqladtp; sqltdss *sqltdsp; void **sqphsv; unsigned int *sqphsl; int *sqphss; void **sqpind; int *sqpins; unsigned int *sqparm; unsigned int **sqparc; unsigned short *sqpadto; unsigned short *sqptdso; void *sqhstv[19]; unsigned int sqhstl[19]; int sqhsts[19]; void *sqindv[19]; int sqinds[19]; unsigned int sqharm[19]; unsigned int *sqharc[19]; unsigned short sqadto[19]; unsigned short sqtdso[19]; } sqlstm = {10,19}; /* SQLLIB Prototypes */ extern sqlcxt (/*_ void **, unsigned long *, struct sqlexd *, struct sqlcxp * _*/); extern sqlcx2t(/*_ void **, unsigned long *, struct sqlexd *, struct sqlcxp * _*/); extern sqlbuft(/*_ void **, char * _*/); extern sqlgs2t(/*_ void **, char * _*/); extern sqlorat(/*_ void **, unsigned long *, void * _*/); /* Forms Interface */ static int IAPSUCC = 0; static int IAPFAIL = 1403; static int IAPFTL = 535; extern void sqliem(/*_ char *, int * _*/); typedef struct { unsigned short len; unsigned char arr[1]; } VARCHAR; typedef struct { unsigned short len; unsigned char arr[1]; } varchar; /* CUD (Compilation Unit Data) Array */ static short sqlcud0[] = {10,4130,0,0,0, 5,0,0,1,84,0,4,160,0,0,2,1,0,1,0,1,97,0,0,2,97,0,0, 28,0,0,2,0,0,27,218,0,0,4,4,0,1,0,1,97,0,0,1,10,0,0,1,10,0,0,1,10,0,0, 59,0,0,3,205,0,3,252,0,0,12,12,0,1,0,1,97,0,0,1,97,0,0,1,4,0,0,1,4,0,0,1,4,0,0, 1,97,0,0,1,3,0,0,1,3,0,0,1,3,0,0,1,3,0,0,1,97,0,0,1,97,0,0, 122,0,0,4,95,0,4,276,0,0,4,3,0,1,0,2,3,0,0,1,97,0,0,1,97,0,0,1,97,0,0, 153,0,0,5,0,0,32,285,0,0,0,0,0,1,0, 168,0,0,6,203,0,3,290,0,0,11,11,0,1,0,1,97,0,0,1,97,0,0,1,3,0,0,1,3,0,0,1,4,0, 0,1,4,0,0,1,4,0,0,1,4,0,0,1,3,0,0,1,97,0,0,1,97,0,0, 227,0,0,7,212,0,3,314,0,0,11,11,0,1,0,1,97,0,0,1,97,0,0,1,3,0,0,1,3,0,0,1,1,0, 0,1,3,0,0,1,3,0,0,1,4,0,0,1,4,0,0,1,97,0,0,1,97,0,0, 286,0,0,8,95,0,4,331,0,0,4,3,0,1,0,2,3,0,0,1,97,0,0,1,97,0,0,1,97,0,0, 317,0,0,9,0,0,32,340,0,0,0,0,0,1,0, 332,0,0,10,135,0,3,345,0,0,7,7,0,1,0,1,97,0,0,1,97,0,0,1,3,0,0,1,3,0,0,1,3,0,0, 1,97,0,0,1,97,0,0, 375,0,0,11,189,0,3,357,0,0,8,8,0,1,0,1,97,0,0,1,97,0,0,1,3,0,0,1,3,0,0,1,3,0,0, 1,3,0,0,1,97,0,0,1,97,0,0, 422,0,0,12,160,0,3,376,0,0,8,8,0,1,0,1,97,0,0,1,97,0,0,1,3,0,0,1,97,0,0,1,3,0, 0,1,3,0,0,1,97,0,0,1,97,0,0, 469,0,0,13,211,0,3,402,0,0,11,11,0,1,0,1,97,0,0,1,97,0,0,1,3,0,0,1,3,0,0,1,3,0, 0,1,3,0,0,1,97,0,0,1,97,0,0,1,3,0,0,1,97,0,0,1,97,0,0, 528,0,0,14,97,0,4,419,0,0,4,3,0,1,0,2,3,0,0,1,97,0,0,1,97,0,0,1,97,0,0, 559,0,0,15,0,0,32,428,0,0,0,0,0,1,0, 574,0,0,16,135,0,3,433,0,0,7,7,0,1,0,1,97,0,0,1,97,0,0,1,3,0,0,1,3,0,0,1,3,0,0, 1,97,0,0,1,97,0,0, 617,0,0,17,160,0,3,445,0,0,8,8,0,1,0,1,97,0,0,1,97,0,0,1,3,0,0,1,3,0,0,1,97,0, 0,1,3,0,0,1,97,0,0,1,97,0,0, 664,0,0,18,62,0,4,459,0,0,2,1,0,1,0,2,3,0,0,1,97,0,0, 687,0,0,19,0,0,32,465,0,0,0,0,0,1,0, 702,0,0,20,53,0,4,478,0,0,2,1,0,1,0,2,3,0,0,1,97,0,0, 725,0,0,21,160,0,4,484,0,0,7,5,0,1,0,2,3,0,0,2,3,0,0,1,97,0,0,1,97,0,0,1,97,0, 0,1,3,0,0,1,3,0,0, 768,0,0,22,194,0,4,495,0,0,7,5,0,1,0,2,3,0,0,2,3,0,0,1,97,0,0,1,97,0,0,1,97,0, 0,1,3,0,0,1,3,0,0, 811,0,0,23,196,0,4,507,0,0,7,5,0,1,0,2,3,0,0,2,3,0,0,1,97,0,0,1,97,0,0,1,97,0, 0,1,3,0,0,1,3,0,0, 854,0,0,24,196,0,4,518,0,0,7,5,0,1,0,2,3,0,0,2,3,0,0,1,97,0,0,1,97,0,0,1,97,0, 0,1,3,0,0,1,3,0,0, 897,0,0,25,111,0,4,528,0,0,5,4,0,1,0,2,3,0,0,1,97,0,0,1,97,0,0,1,97,0,0,1,3,0, 0, 932,0,0,26,150,0,4,539,0,0,3,2,0,1,0,2,3,0,0,1,3,0,0,1,3,0,0, 959,0,0,27,0,0,32,545,0,0,0,0,0,1,0, 974,0,0,28,46,0,4,552,0,0,1,0,0,1,0,2,3,0,0, 993,0,0,29,43,0,4,556,0,0,1,0,0,1,0,2,3,0,0, 1012,0,0,30,62,0,3,558,0,0,1,1,0,1,0,1,3,0,0, 1031,0,0,31,383,0,3,562,0,0,19,19,0,1,0,1,97,0,0,1,97,0,0,1,3,0,0,1,3,0,0,1,3, 0,0,1,3,0,0,1,97,0,0,1,97,0,0,1,4,0,0,1,4,0,0,1,4,0,0,1,97,0,0,1,97,0,0,1,3,0, 0,1,3,0,0,1,3,0,0,1,3,0,0,1,97,0,0,1,97,0,0, 1122,0,0,32,0,0,30,587,0,0,0,0,0,1,0, }; /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/ /* Populate_Station.pc */ /* Load to the NCEDC database a station */ /* information */ /* Errors can be found on Error.log */ /* */ /* Zuzlewski Stephane @1998/1999 */ /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/ #include #include #include /* EXEC SQL INCLUDE sqlca.h; */ /* * $Header: sqlca.h,v 1.3 1994/12/12 19:27:27 jbasu Exp $ sqlca.h */ /* Copyright (c) 1985,1986 by Oracle Corporation. */ /* NAME SQLCA : SQL Communications Area. FUNCTION Contains no code. Oracle fills in the SQLCA with status info during the execution of a SQL stmt. NOTES ************************************************************** *** *** *** This file is SOSD. Porters must change the data types *** *** appropriately on their platform. See notes/pcport.doc *** *** for more information. *** *** *** ************************************************************** If the symbol SQLCA_STORAGE_CLASS is defined, then the SQLCA will be defined to have this storage class. For example: #define SQLCA_STORAGE_CLASS extern will define the SQLCA as an extern. If the symbol SQLCA_INIT is defined, then the SQLCA will be statically initialized. Although this is not necessary in order to use the SQLCA, it is a good pgming practice not to have unitialized variables. However, some C compilers/OS's don't allow automatic variables to be init'd in this manner. Therefore, if you are INCLUDE'ing the SQLCA in a place where it would be an automatic AND your C compiler/OS doesn't allow this style of initialization, then SQLCA_INIT should be left undefined -- all others can define SQLCA_INIT if they wish. If the symbol SQLCA_NONE is defined, then the SQLCA variable will not be defined at all. The symbol SQLCA_NONE should not be defined in source modules that have embedded SQL. However, source modules that have no embedded SQL, but need to manipulate a sqlca struct passed in as a parameter, can set the SQLCA_NONE symbol to avoid creation of an extraneous sqlca variable. MODIFIED jbasu 12/12/94 - Bug 217878: note this is an SOSD file losborne 08/11/92 - No sqlca var if SQLCA_NONE macro set Clare 12/06/84 - Ch SQLCA to not be an extern. Clare 10/21/85 - Add initialization. Bradbury 01/05/86 - Only initialize when SQLCA_INIT set Clare 06/12/86 - Add SQLCA_STORAGE_CLASS option. */ #ifndef SQLCA #define SQLCA 1 struct sqlca { /* ub1 */ char sqlcaid[8]; /* b4 */ long sqlabc; /* b4 */ long sqlcode; struct { /* ub2 */ unsigned short sqlerrml; /* ub1 */ char sqlerrmc[70]; } sqlerrm; /* ub1 */ char sqlerrp[8]; /* b4 */ long sqlerrd[6]; /* ub1 */ char sqlwarn[8]; /* ub1 */ char sqlext[8]; }; #ifndef SQLCA_NONE #ifdef SQLCA_STORAGE_CLASS SQLCA_STORAGE_CLASS struct sqlca sqlca #else struct sqlca sqlca #endif #ifdef SQLCA_INIT = { {'S', 'Q', 'L', 'C', 'A', ' ', ' ', ' '}, sizeof(struct sqlca), 0, { 0, {0}}, {'N', 'O', 'T', ' ', 'S', 'E', 'T', ' '}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0} } #endif ; #endif #endif /* end SQLCA */ typedef char asciz[20]; typedef char vc2_arr[11]; /* EXEC SQL BEGIN DECLARE SECTION; */ /* User-defined type for null-terminated strings */ /* EXEC SQL TYPE asciz IS STRING(20) REFERENCE; */ /* User-defined type for a VARCHAR array element */ /* EXEC SQL TYPE vc2_arr IS VARCHAR2(11) REFERENCE; */ asciz username; asciz password; char user_pwd[80]; int i; int j; int k; char sta[7]; /* Station code */ char net[9]; /* Network code */ float lat; /* Latitude */ float lon; /* Longitude */ float elev; /* Elevation */ float slat; /* Sensor latitude */ float slon; /* Sensor longitude */ float selev; /* Sensor elevation */ char test[32]; /* Test string */ char staname[51]; /* Station name */ int nb_sensor; /* Number of sensors */ int nb_filamp; /* Number of filter-amplifiers */ int nb_digi; /* Number of digitizers */ int nb_data; /* Number of dataloggers */ char s_dat[32]; /* Start date */ char e_dat[32]; /* End date */ int sensor_nb; /* Sensor number */ char sensor_sn[32]; /* Sensor serial number */ float depth; /* Sensor depth */ int nb_component; /* Number of components */ int pdn; /* Preamplifier/Digitizer number */ char dtyp[32]; /* Digitizer type */ float az; /* Azimuth */ float dip; /* Dip */ int pdch; /* Preamplifier/Digitizer channel */ char pdtyp; /* Preamplifier/Digitizer */ char preamp_sn[32]; /* Preamplifier serial number */ int nch; /* Number of channels */ int dno; /* Digitizer number */ int dch; /* Digitizer channel number */ int drch; /* Digitizer *REAL* channel number */ char digi_sn[32]; /* Digitizer serial number */ int nb_pri; /* Number of primary channels */ int nb_aux; /* Number of auxiliary channels */ int nb_cha; /* Total number of channels */ int dln; /* Datalogger number */ char dtyp[32]; /* Digitizer type */ int dlch; /* Datalogger channel number */ char pol[32]; /* Digitizer polarity */ char data_sn[32]; /* Datalogger serial number */ int dnch; /* Number of channels */ char seed_io[32]; /* SEED instrument and orientation code */ int nbf; /* Number of filters */ char seed[32]; /* SEED channel name */ float sps; /* Sampling rate */ float mrgf; /* Master rgain frequency */ float ctol; /* Clock tolerance */ char dtyp[32]; /* Data type */ char seq[32]; /* Filter sequence */ char dfmt[32]; /* Data format */ char ctyp[32]; /* Compression type */ int blks; /* Block size */ int sensor_id; /* Sensor identifier */ int filamp_id; /* Filter-amplifier identifier */ int data_id; /* Datalogger identifier */ int seqfil_id; /* Sequence of filters identifier */ int comp_type; /* Compression type */ int unit_signal; /* Units of signal responses */ int unit_calib; /* Units of calibration */ int digi_nb; /* Digitizer number */ int digi_pchannel_nb; /* Digitizer physical channel number */ int data_nb; /* Datalogger number */ int data_pchannel_nb; /* Datalogger physical channel number */ int filamp_nb; /* Filter-Amplifier number */ int filamp_pchannel_nb; /* Filter-Amplifier physical channel number */ int sensor_nb; /* Sensor number */ int component_nb; /* Component number */ int channel_nb; /* Channel number */ /* EXEC SQL END DECLARE SECTION; */ long SQLCODE; FILE* f_err; /* Error File descriptor */ void sql_error(); /* handles unrecoverable errors */ /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/ /* Function to convert a julian date to a Oracle date */ /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/ char* Convert_Date (d) char d[16]; { /* EXEC SQL BEGIN DECLARE SECTION; */ char nd[32]; char day[16]; /* EXEC SQL END DECLARE SECTION; */ char hour[5]; char year[5]; char sday[4]; sprintf (year, "%.4s", d); sprintf (sday, "%.3s", d+5); sprintf (hour, "%.4s", d+9); if (!strcmp (year, "2599")) { strcpy (nd, "3000/01/01 00:00:00"); return (nd); } else if (!strcmp (year, "????")) { strcpy (nd, "0001/01/01 00:00:00"); return (nd); } strcpy (day, d); day[8] = '\0'; /* EXEC SQL SELECT TO_CHAR (TO_DATE (:day, 'YYYY.DDD'), 'YYYY/MM/DD HH24:MI:SS') INTO :nd FROM DUAL; */ { struct sqlexd sqlstm; sqlstm.sqlvsn = 10; sqlstm.arrsiz = 2; sqlstm.sqladtp = &sqladt; sqlstm.sqltdsp = &sqltds; sqlstm.stmt = "select TO_CHAR(TO_DATE(:b0,'YYYY.DDD'),'YYYY/MM/DD HH24:MI:S\ S') into :b1 from DUAL "; sqlstm.iters = (unsigned int )1; sqlstm.offset = (unsigned int )5; sqlstm.selerr = (unsigned short)1; sqlstm.cud = sqlcud0; sqlstm.sqlest = (unsigned char *)&sqlca; sqlstm.sqlety = (unsigned short)0; sqlstm.sqhstv[0] = ( void *)day; sqlstm.sqhstl[0] = (unsigned int )16; sqlstm.sqhsts[0] = ( int )0; 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 *)nd; sqlstm.sqhstl[1] = (unsigned int )32; sqlstm.sqhsts[1] = ( int )0; 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.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); SQLCODE = sqlca.sqlcode; } sprintf (nd, "%.4s/%.2s/%.2s %.2s:%.2s:00", year, nd+5, nd+8, hour, hour+2); return (nd); } /*-*-*-*-*-*-*-*-*/ /* Main function */ /*-*-*-*-*-*-*-*-*/ main (argc, argv) int argc; char* argv[]; { FILE* f_station; /* Station file descriptor */ char n_station[32]; /* Station file name */ char line[1025]; /* Line information */ char header[7]; /* Header */ char sdat[16]; /* Start date */ char edat[16]; /* End date */ /* Testing parameters */ if (argc != 2) { printf ("\n\n Populate_Station \n\n"); exit (0); } /* Opening the error file */ if ((f_err = fopen ("Error.log", "w+t")) == NULL) { printf ("\n Error [File (Error.log) could not be opened].\n\n"); exit (0); } /* Opening the station file */ sprintf (n_station, "%s.tbl", argv[1]); if ((f_station = fopen (n_station, "rt")) == NULL) { printf ("\n Error [File (%s) could not be opened].\n\n", n_station); exit (0); } /* Connect to ORACLE. */ /* EXEC SQL WHENEVER SQLERROR DO sql_error(); */ strcpy (username, "ncedcdba"); strcpy (password, "passwd"); strcpy (user_pwd, "ncedcdba/passwd@ncedc"); /* EXEC SQL CONNECT :user_pwd; */ { struct sqlexd sqlstm; sqlstm.sqlvsn = 10; sqlstm.arrsiz = 4; sqlstm.sqladtp = &sqladt; sqlstm.sqltdsp = &sqltds; sqlstm.iters = (unsigned int )10; sqlstm.offset = (unsigned int )28; sqlstm.cud = sqlcud0; sqlstm.sqlest = (unsigned char *)&sqlca; sqlstm.sqlety = (unsigned short)0; sqlstm.sqhstv[0] = ( void *)user_pwd; sqlstm.sqhstl[0] = (unsigned int )80; sqlstm.sqhsts[0] = ( int )80; 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.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); SQLCODE = sqlca.sqlcode; if (sqlca.sqlcode < 0) sql_error(); } printf ("\n Connected to ORACLE as user: %s\n", username); /* Parsing station file */ fgets (line, 1024, f_station); while (!feof (f_station)) { strcpy (header, ""); sscanf (line, "%s", header); if (!strcmp (header, "SCODE")) { /* Reading station information */ sscanf (line, "%*s %s %s %f %f %f \"%s\"", sta, net, &lat, &lon, &elev, staname); strcpy (staname, strstr (line, staname)); staname[strlen (staname) - 2] = '\0'; printf ("\n Station : %s\t%s\t%f\t%f\t%f\t%s", sta, net, lat, lon, elev, staname); } else if (!strcmp (header, "STINST")) { /* Reading instrument information */ sscanf (line, "%*s %d %d %d %d %s %s", &nb_sensor, &nb_filamp, &nb_digi, &nb_data, sdat, edat); /* Converting dates format */ strcpy (s_dat, Convert_Date (sdat)); strcpy (e_dat, Convert_Date (edat)); printf ("\n Instrument : %d\t%d\t%d\t%d\t%s\t%s", nb_sensor, nb_filamp, nb_digi, nb_data, s_dat, e_dat); /* EXEC SQL INSERT INTO Station (sta, net, lat, lon, elev, staname, nb_sensor, nb_filamp, nb_digi, nb_data, datumhor, datumver, ondate, offdate, lddate) VALUES (:sta, :net, :lat, :lon, :elev, :staname, :nb_sensor, :nb_filamp, :nb_digi, :nb_data, NULL, NULL, :s_dat, :e_dat, SYSDATE); */ { struct sqlexd sqlstm; sqlstm.sqlvsn = 10; sqlstm.arrsiz = 12; sqlstm.sqladtp = &sqladt; sqlstm.sqltdsp = &sqltds; sqlstm.stmt = "insert into Station(sta,net,lat,lon,elev,staname,nb_sensor\ ,nb_filamp,nb_digi,nb_data,datumhor,datumver,ondate,offdate,lddate) values (:b\ 0,:b1,:b2,:b3,:b4,:b5,:b6,:b7,:b8,:b9,null ,null ,:b10,:b11,sysdate )"; sqlstm.iters = (unsigned int )1; sqlstm.offset = (unsigned int )59; sqlstm.cud = sqlcud0; sqlstm.sqlest = (unsigned char *)&sqlca; sqlstm.sqlety = (unsigned short)0; sqlstm.sqhstv[0] = ( void *)sta; sqlstm.sqhstl[0] = (unsigned int )7; sqlstm.sqhsts[0] = ( int )0; 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 *)net; sqlstm.sqhstl[1] = (unsigned int )9; sqlstm.sqhsts[1] = ( int )0; 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 *)⪫ sqlstm.sqhstl[2] = (unsigned int )4; sqlstm.sqhsts[2] = ( int )0; 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.sqhstv[3] = ( void *)&lon; sqlstm.sqhstl[3] = (unsigned int )4; sqlstm.sqhsts[3] = ( int )0; sqlstm.sqindv[3] = ( void *)0; sqlstm.sqinds[3] = ( int )0; sqlstm.sqharm[3] = (unsigned int )0; sqlstm.sqadto[3] = (unsigned short )0; sqlstm.sqtdso[3] = (unsigned short )0; sqlstm.sqhstv[4] = ( void *)&elev; sqlstm.sqhstl[4] = (unsigned int )4; sqlstm.sqhsts[4] = ( int )0; sqlstm.sqindv[4] = ( void *)0; sqlstm.sqinds[4] = ( int )0; sqlstm.sqharm[4] = (unsigned int )0; sqlstm.sqadto[4] = (unsigned short )0; sqlstm.sqtdso[4] = (unsigned short )0; sqlstm.sqhstv[5] = ( void *)staname; sqlstm.sqhstl[5] = (unsigned int )51; sqlstm.sqhsts[5] = ( int )0; sqlstm.sqindv[5] = ( void *)0; sqlstm.sqinds[5] = ( int )0; sqlstm.sqharm[5] = (unsigned int )0; sqlstm.sqadto[5] = (unsigned short )0; sqlstm.sqtdso[5] = (unsigned short )0; sqlstm.sqhstv[6] = ( void *)&nb_sensor; sqlstm.sqhstl[6] = (unsigned int )4; sqlstm.sqhsts[6] = ( int )0; sqlstm.sqindv[6] = ( void *)0; sqlstm.sqinds[6] = ( int )0; sqlstm.sqharm[6] = (unsigned int )0; sqlstm.sqadto[6] = (unsigned short )0; sqlstm.sqtdso[6] = (unsigned short )0; sqlstm.sqhstv[7] = ( void *)&nb_filamp; sqlstm.sqhstl[7] = (unsigned int )4; sqlstm.sqhsts[7] = ( int )0; sqlstm.sqindv[7] = ( void *)0; sqlstm.sqinds[7] = ( int )0; sqlstm.sqharm[7] = (unsigned int )0; sqlstm.sqadto[7] = (unsigned short )0; sqlstm.sqtdso[7] = (unsigned short )0; sqlstm.sqhstv[8] = ( void *)&nb_digi; sqlstm.sqhstl[8] = (unsigned int )4; sqlstm.sqhsts[8] = ( int )0; sqlstm.sqindv[8] = ( void *)0; sqlstm.sqinds[8] = ( int )0; sqlstm.sqharm[8] = (unsigned int )0; sqlstm.sqadto[8] = (unsigned short )0; sqlstm.sqtdso[8] = (unsigned short )0; sqlstm.sqhstv[9] = ( void *)&nb_data; sqlstm.sqhstl[9] = (unsigned int )4; sqlstm.sqhsts[9] = ( int )0; sqlstm.sqindv[9] = ( void *)0; sqlstm.sqinds[9] = ( int )0; sqlstm.sqharm[9] = (unsigned int )0; sqlstm.sqadto[9] = (unsigned short )0; sqlstm.sqtdso[9] = (unsigned short )0; sqlstm.sqhstv[10] = ( void *)s_dat; sqlstm.sqhstl[10] = (unsigned int )32; sqlstm.sqhsts[10] = ( int )0; sqlstm.sqindv[10] = ( void *)0; sqlstm.sqinds[10] = ( int )0; sqlstm.sqharm[10] = (unsigned int )0; sqlstm.sqadto[10] = (unsigned short )0; sqlstm.sqtdso[10] = (unsigned short )0; sqlstm.sqhstv[11] = ( void *)e_dat; sqlstm.sqhstl[11] = (unsigned int )32; sqlstm.sqhsts[11] = ( int )0; sqlstm.sqindv[11] = ( void *)0; sqlstm.sqinds[11] = ( int )0; sqlstm.sqharm[11] = (unsigned int )0; sqlstm.sqadto[11] = (unsigned short )0; sqlstm.sqtdso[11] = (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); SQLCODE = sqlca.sqlcode; if (sqlca.sqlcode < 0) sql_error(); } /* Reading sensor information */ for (i=1;i<=nb_sensor;i++) { fgets (line, 1024, f_station); /* Reading sensor information */ strcpy (test, ""); sscanf (line, "%*s %*s %*s %*s %*s %s", test); if (strlen (test) == 0) { sscanf (line, "%*s %s %d %f %d", sensor_sn, &sensor_nb, &depth, &nb_component); slat = lat; slon = lon; selev = elev; } else sscanf (line, "%*s %s %d %f %f %f %f %d", sensor_sn, &sensor_nb, &slat, &slon, &selev, &depth, &nb_component); printf ("\n\t Sensor %d: %s\t%f\t%d", sensor_nb, sensor_sn, depth, nb_component); /* EXEC SQL SELECT sensor_id INTO :sensor_id FROM Sensor WHERE serial_nb = :sensor_sn AND :s_dat >= ondate AND :s_dat <= offdate; */ { struct sqlexd sqlstm; sqlstm.sqlvsn = 10; sqlstm.arrsiz = 12; sqlstm.sqladtp = &sqladt; sqlstm.sqltdsp = &sqltds; sqlstm.stmt = "select sensor_id into :b0 from Sensor where ((serial_nb=\ :b1 and :b2>=ondate) and :b2<=offdate)"; sqlstm.iters = (unsigned int )1; sqlstm.offset = (unsigned int )122; sqlstm.selerr = (unsigned short)1; sqlstm.cud = sqlcud0; sqlstm.sqlest = (unsigned char *)&sqlca; sqlstm.sqlety = (unsigned short)0; sqlstm.sqhstv[0] = ( void *)&sensor_id; sqlstm.sqhstl[0] = (unsigned int )4; sqlstm.sqhsts[0] = ( int )0; 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 *)sensor_sn; sqlstm.sqhstl[1] = (unsigned int )32; sqlstm.sqhsts[1] = ( int )0; 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 *)s_dat; sqlstm.sqhstl[2] = (unsigned int )32; sqlstm.sqhsts[2] = ( int )0; 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.sqhstv[3] = ( void *)s_dat; sqlstm.sqhstl[3] = (unsigned int )32; sqlstm.sqhsts[3] = ( int )0; sqlstm.sqindv[3] = ( void *)0; sqlstm.sqinds[3] = ( int )0; sqlstm.sqharm[3] = (unsigned int )0; sqlstm.sqadto[3] = (unsigned short )0; sqlstm.sqtdso[3] = (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); SQLCODE = sqlca.sqlcode; if (sqlca.sqlcode < 0) sql_error(); } if (sensor_id == 0) { printf ("\n\n Error: Couldn't find sensor [%s:%s].\n\n", sensor_sn, s_dat); /* EXEC SQL ROLLBACK WORK RELEASE; */ { struct sqlexd sqlstm; sqlstm.sqlvsn = 10; sqlstm.arrsiz = 12; sqlstm.sqladtp = &sqladt; sqlstm.sqltdsp = &sqltds; sqlstm.iters = (unsigned int )1; sqlstm.offset = (unsigned int )153; sqlstm.cud = sqlcud0; sqlstm.sqlest = (unsigned char *)&sqlca; sqlstm.sqlety = (unsigned short)0; sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn); SQLCODE = sqlca.sqlcode; if (sqlca.sqlcode < 0) sql_error(); } exit (0); } /* EXEC SQL INSERT INTO Station_Sensor (sta, net, sensor_nb, sensor_id, lat, lon, elev, edepth, nb_component, datumhor, datumver, ondate, offdate, lddate) VALUES (:sta, :net, :sensor_nb, :sensor_id, :slat, :slon, :selev, :depth, :nb_component, NULL, NULL, :s_dat, :e_dat, SYSDATE); */ { struct sqlexd sqlstm; sqlstm.sqlvsn = 10; sqlstm.arrsiz = 12; sqlstm.sqladtp = &sqladt; sqlstm.sqltdsp = &sqltds; sqlstm.stmt = "insert into Station_Sensor(sta,net,sensor_nb,sensor_id,la\ t,lon,elev,edepth,nb_component,datumhor,datumver,ondate,offdate,lddate) values\ (:b0,:b1,:b2,:b3,:b4,:b5,:b6,:b7,:b8,null ,null ,:b9,:b10,sysdate )"; sqlstm.iters = (unsigned int )1; sqlstm.offset = (unsigned int )168; sqlstm.cud = sqlcud0; sqlstm.sqlest = (unsigned char *)&sqlca; sqlstm.sqlety = (unsigned short)0; sqlstm.sqhstv[0] = ( void *)sta; sqlstm.sqhstl[0] = (unsigned int )7; sqlstm.sqhsts[0] = ( int )0; 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 *)net; sqlstm.sqhstl[1] = (unsigned int )9; sqlstm.sqhsts[1] = ( int )0; 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 *)&sensor_nb; sqlstm.sqhstl[2] = (unsigned int )4; sqlstm.sqhsts[2] = ( int )0; 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.sqhstv[3] = ( void *)&sensor_id; sqlstm.sqhstl[3] = (unsigned int )4; sqlstm.sqhsts[3] = ( int )0; sqlstm.sqindv[3] = ( void *)0; sqlstm.sqinds[3] = ( int )0; sqlstm.sqharm[3] = (unsigned int )0; sqlstm.sqadto[3] = (unsigned short )0; sqlstm.sqtdso[3] = (unsigned short )0; sqlstm.sqhstv[4] = ( void *)&slat; sqlstm.sqhstl[4] = (unsigned int )4; sqlstm.sqhsts[4] = ( int )0; sqlstm.sqindv[4] = ( void *)0; sqlstm.sqinds[4] = ( int )0; sqlstm.sqharm[4] = (unsigned int )0; sqlstm.sqadto[4] = (unsigned short )0; sqlstm.sqtdso[4] = (unsigned short )0; sqlstm.sqhstv[5] = ( void *)&slon; sqlstm.sqhstl[5] = (unsigned int )4; sqlstm.sqhsts[5] = ( int )0; sqlstm.sqindv[5] = ( void *)0; sqlstm.sqinds[5] = ( int )0; sqlstm.sqharm[5] = (unsigned int )0; sqlstm.sqadto[5] = (unsigned short )0; sqlstm.sqtdso[5] = (unsigned short )0; sqlstm.sqhstv[6] = ( void *)&selev; sqlstm.sqhstl[6] = (unsigned int )4; sqlstm.sqhsts[6] = ( int )0; sqlstm.sqindv[6] = ( void *)0; sqlstm.sqinds[6] = ( int )0; sqlstm.sqharm[6] = (unsigned int )0; sqlstm.sqadto[6] = (unsigned short )0; sqlstm.sqtdso[6] = (unsigned short )0; sqlstm.sqhstv[7] = ( void *)&depth; sqlstm.sqhstl[7] = (unsigned int )4; sqlstm.sqhsts[7] = ( int )0; sqlstm.sqindv[7] = ( void *)0; sqlstm.sqinds[7] = ( int )0; sqlstm.sqharm[7] = (unsigned int )0; sqlstm.sqadto[7] = (unsigned short )0; sqlstm.sqtdso[7] = (unsigned short )0; sqlstm.sqhstv[8] = ( void *)&nb_component; sqlstm.sqhstl[8] = (unsigned int )4; sqlstm.sqhsts[8] = ( int )0; sqlstm.sqindv[8] = ( void *)0; sqlstm.sqinds[8] = ( int )0; sqlstm.sqharm[8] = (unsigned int )0; sqlstm.sqadto[8] = (unsigned short )0; sqlstm.sqtdso[8] = (unsigned short )0; sqlstm.sqhstv[9] = ( void *)s_dat; sqlstm.sqhstl[9] = (unsigned int )32; sqlstm.sqhsts[9] = ( int )0; sqlstm.sqindv[9] = ( void *)0; sqlstm.sqinds[9] = ( int )0; sqlstm.sqharm[9] = (unsigned int )0; sqlstm.sqadto[9] = (unsigned short )0; sqlstm.sqtdso[9] = (unsigned short )0; sqlstm.sqhstv[10] = ( void *)e_dat; sqlstm.sqhstl[10] = (unsigned int )32; sqlstm.sqhsts[10] = ( int )0; sqlstm.sqindv[10] = ( void *)0; sqlstm.sqinds[10] = ( int )0; sqlstm.sqharm[10] = (unsigned int )0; sqlstm.sqadto[10] = (unsigned short )0; sqlstm.sqtdso[10] = (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); SQLCODE = sqlca.sqlcode; if (sqlca.sqlcode < 0) sql_error(); } for (j=1;j<=nb_component;j++) { fgets (line, 1024, f_station); /* Reading component information */ strcpy (test, ""); sscanf (line, "%*s %*s %*s %*s %*s %*s %*s %s", test); if (strlen (test) == 0) { sscanf (line, "%*s %d %d %s %f %f %d", &channel_nb, &pdn, dtyp, &az, &dip, &pdch); if (nb_filamp != 0) pdtyp = 'F'; else pdtyp = 'D'; } else sscanf (line, "%*s %d %d %s %f %f %d %c", &channel_nb, &pdn, dtyp, &az, &dip, &pdch, &pdtyp); printf ("\n\t\t Component %d: %d %s %f %f %d %c", channel_nb, pdn, dtyp, az, dip, pdch, pdtyp); /* EXEC SQL INSERT INTO Station_Sensor_Component (sta, net, sensor_nb, component_nb, next_hard_type, next_hard_nb, next_hard_pchannel, azimuth, dip, ondate, offdate, lddate) VALUES (:sta, :net, :sensor_nb, :channel_nb, :pdtyp, :pdn, :pdch, :az, :dip, :s_dat, :e_dat, SYSDATE); */ { struct sqlexd sqlstm; sqlstm.sqlvsn = 10; sqlstm.arrsiz = 12; sqlstm.sqladtp = &sqladt; sqlstm.sqltdsp = &sqltds; sqlstm.stmt = "insert into Station_Sensor_Component(sta,net,sensor_nb,c\ omponent_nb,next_hard_type,next_hard_nb,next_hard_pchannel,azimuth,dip,ondate,\ offdate,lddate) values (:b0,:b1,:b2,:b3,:b4,:b5,:b6,:b7,:b8,:b9,:b10,sysdate )"; sqlstm.iters = (unsigned int )1; sqlstm.offset = (unsigned int )227; sqlstm.cud = sqlcud0; sqlstm.sqlest = (unsigned char *)&sqlca; sqlstm.sqlety = (unsigned short)0; sqlstm.sqhstv[0] = ( void *)sta; sqlstm.sqhstl[0] = (unsigned int )7; sqlstm.sqhsts[0] = ( int )0; 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 *)net; sqlstm.sqhstl[1] = (unsigned int )9; sqlstm.sqhsts[1] = ( int )0; 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 *)&sensor_nb; sqlstm.sqhstl[2] = (unsigned int )4; sqlstm.sqhsts[2] = ( int )0; 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.sqhstv[3] = ( void *)&channel_nb; sqlstm.sqhstl[3] = (unsigned int )4; sqlstm.sqhsts[3] = ( int )0; sqlstm.sqindv[3] = ( void *)0; sqlstm.sqinds[3] = ( int )0; sqlstm.sqharm[3] = (unsigned int )0; sqlstm.sqadto[3] = (unsigned short )0; sqlstm.sqtdso[3] = (unsigned short )0; sqlstm.sqhstv[4] = ( void *)&pdtyp; sqlstm.sqhstl[4] = (unsigned int )1; sqlstm.sqhsts[4] = ( int )0; sqlstm.sqindv[4] = ( void *)0; sqlstm.sqinds[4] = ( int )0; sqlstm.sqharm[4] = (unsigned int )0; sqlstm.sqadto[4] = (unsigned short )0; sqlstm.sqtdso[4] = (unsigned short )0; sqlstm.sqhstv[5] = ( void *)&pdn; sqlstm.sqhstl[5] = (unsigned int )4; sqlstm.sqhsts[5] = ( int )0; sqlstm.sqindv[5] = ( void *)0; sqlstm.sqinds[5] = ( int )0; sqlstm.sqharm[5] = (unsigned int )0; sqlstm.sqadto[5] = (unsigned short )0; sqlstm.sqtdso[5] = (unsigned short )0; sqlstm.sqhstv[6] = ( void *)&pdch; sqlstm.sqhstl[6] = (unsigned int )4; sqlstm.sqhsts[6] = ( int )0; sqlstm.sqindv[6] = ( void *)0; sqlstm.sqinds[6] = ( int )0; sqlstm.sqharm[6] = (unsigned int )0; sqlstm.sqadto[6] = (unsigned short )0; sqlstm.sqtdso[6] = (unsigned short )0; sqlstm.sqhstv[7] = ( void *)&az; sqlstm.sqhstl[7] = (unsigned int )4; sqlstm.sqhsts[7] = ( int )0; sqlstm.sqindv[7] = ( void *)0; sqlstm.sqinds[7] = ( int )0; sqlstm.sqharm[7] = (unsigned int )0; sqlstm.sqadto[7] = (unsigned short )0; sqlstm.sqtdso[7] = (unsigned short )0; sqlstm.sqhstv[8] = ( void *)&dip; sqlstm.sqhstl[8] = (unsigned int )4; sqlstm.sqhsts[8] = ( int )0; sqlstm.sqindv[8] = ( void *)0; sqlstm.sqinds[8] = ( int )0; sqlstm.sqharm[8] = (unsigned int )0; sqlstm.sqadto[8] = (unsigned short )0; sqlstm.sqtdso[8] = (unsigned short )0; sqlstm.sqhstv[9] = ( void *)s_dat; sqlstm.sqhstl[9] = (unsigned int )32; sqlstm.sqhsts[9] = ( int )0; sqlstm.sqindv[9] = ( void *)0; sqlstm.sqinds[9] = ( int )0; sqlstm.sqharm[9] = (unsigned int )0; sqlstm.sqadto[9] = (unsigned short )0; sqlstm.sqtdso[9] = (unsigned short )0; sqlstm.sqhstv[10] = ( void *)e_dat; sqlstm.sqhstl[10] = (unsigned int )32; sqlstm.sqhsts[10] = ( int )0; sqlstm.sqindv[10] = ( void *)0; sqlstm.sqinds[10] = ( int )0; sqlstm.sqharm[10] = (unsigned int )0; sqlstm.sqadto[10] = (unsigned short )0; sqlstm.sqtdso[10] = (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); SQLCODE = sqlca.sqlcode; if (sqlca.sqlcode < 0) sql_error(); } } } printf ("\n"); /* Reading preamplifier information */ for (i=1;i<=nb_filamp;i++) { fgets (line, 1024, f_station); /* Reading preamplifier information */ sscanf (line, "%*s %s %d", preamp_sn, &nch); printf ("\n\t Preamplifier %d: %s\t%d", i, preamp_sn, nch); /* EXEC SQL SELECT filamp_id INTO :filamp_id FROM Filamp WHERE serial_nb = :preamp_sn AND :s_dat >= ondate AND :s_dat <= offdate; */ { struct sqlexd sqlstm; sqlstm.sqlvsn = 10; sqlstm.arrsiz = 12; sqlstm.sqladtp = &sqladt; sqlstm.sqltdsp = &sqltds; sqlstm.stmt = "select filamp_id into :b0 from Filamp where ((serial_nb=\ :b1 and :b2>=ondate) and :b2<=offdate)"; sqlstm.iters = (unsigned int )1; sqlstm.offset = (unsigned int )286; sqlstm.selerr = (unsigned short)1; sqlstm.cud = sqlcud0; sqlstm.sqlest = (unsigned char *)&sqlca; sqlstm.sqlety = (unsigned short)0; sqlstm.sqhstv[0] = ( void *)&filamp_id; sqlstm.sqhstl[0] = (unsigned int )4; sqlstm.sqhsts[0] = ( int )0; 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 *)preamp_sn; sqlstm.sqhstl[1] = (unsigned int )32; sqlstm.sqhsts[1] = ( int )0; 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 *)s_dat; sqlstm.sqhstl[2] = (unsigned int )32; sqlstm.sqhsts[2] = ( int )0; 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.sqhstv[3] = ( void *)s_dat; sqlstm.sqhstl[3] = (unsigned int )32; sqlstm.sqhsts[3] = ( int )0; sqlstm.sqindv[3] = ( void *)0; sqlstm.sqinds[3] = ( int )0; sqlstm.sqharm[3] = (unsigned int )0; sqlstm.sqadto[3] = (unsigned short )0; sqlstm.sqtdso[3] = (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); SQLCODE = sqlca.sqlcode; if (sqlca.sqlcode < 0) sql_error(); } if (filamp_id == 0) { printf ("\n\n Error: Couldn't find Filter-Amplifier [%s:%s].\n\n", preamp_sn, s_dat); /* EXEC SQL ROLLBACK WORK RELEASE; */ { struct sqlexd sqlstm; sqlstm.sqlvsn = 10; sqlstm.arrsiz = 12; sqlstm.sqladtp = &sqladt; sqlstm.sqltdsp = &sqltds; sqlstm.iters = (unsigned int )1; sqlstm.offset = (unsigned int )317; sqlstm.cud = sqlcud0; sqlstm.sqlest = (unsigned char *)&sqlca; sqlstm.sqlety = (unsigned short)0; sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn); SQLCODE = sqlca.sqlcode; if (sqlca.sqlcode < 0) sql_error(); } exit (0); } /* EXEC SQL INSERT INTO Station_Filamp (sta, net, filamp_nb, filamp_id, nb_pchannel, ondate, offdate, lddate) VALUES (:sta, :net, :i, :filamp_id, :nch, :s_dat, :e_dat, SYSDATE); */ { struct sqlexd sqlstm; sqlstm.sqlvsn = 10; sqlstm.arrsiz = 12; sqlstm.sqladtp = &sqladt; sqlstm.sqltdsp = &sqltds; sqlstm.stmt = "insert into Station_Filamp(sta,net,filamp_nb,filamp_id,nb\ _pchannel,ondate,offdate,lddate) values (:b0,:b1,:b2,:b3,:b4,:b5,:b6,sysdate )"; sqlstm.iters = (unsigned int )1; sqlstm.offset = (unsigned int )332; sqlstm.cud = sqlcud0; sqlstm.sqlest = (unsigned char *)&sqlca; sqlstm.sqlety = (unsigned short)0; sqlstm.sqhstv[0] = ( void *)sta; sqlstm.sqhstl[0] = (unsigned int )7; sqlstm.sqhsts[0] = ( int )0; 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 *)net; sqlstm.sqhstl[1] = (unsigned int )9; sqlstm.sqhsts[1] = ( int )0; 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 *)&i; sqlstm.sqhstl[2] = (unsigned int )4; sqlstm.sqhsts[2] = ( int )0; 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.sqhstv[3] = ( void *)&filamp_id; sqlstm.sqhstl[3] = (unsigned int )4; sqlstm.sqhsts[3] = ( int )0; sqlstm.sqindv[3] = ( void *)0; sqlstm.sqinds[3] = ( int )0; sqlstm.sqharm[3] = (unsigned int )0; sqlstm.sqadto[3] = (unsigned short )0; sqlstm.sqtdso[3] = (unsigned short )0; sqlstm.sqhstv[4] = ( void *)&nch; sqlstm.sqhstl[4] = (unsigned int )4; sqlstm.sqhsts[4] = ( int )0; sqlstm.sqindv[4] = ( void *)0; sqlstm.sqinds[4] = ( int )0; sqlstm.sqharm[4] = (unsigned int )0; sqlstm.sqadto[4] = (unsigned short )0; sqlstm.sqtdso[4] = (unsigned short )0; sqlstm.sqhstv[5] = ( void *)s_dat; sqlstm.sqhstl[5] = (unsigned int )32; sqlstm.sqhsts[5] = ( int )0; sqlstm.sqindv[5] = ( void *)0; sqlstm.sqinds[5] = ( int )0; sqlstm.sqharm[5] = (unsigned int )0; sqlstm.sqadto[5] = (unsigned short )0; sqlstm.sqtdso[5] = (unsigned short )0; sqlstm.sqhstv[6] = ( void *)e_dat; sqlstm.sqhstl[6] = (unsigned int )32; sqlstm.sqhsts[6] = ( int )0; sqlstm.sqindv[6] = ( void *)0; sqlstm.sqinds[6] = ( int )0; sqlstm.sqharm[6] = (unsigned int )0; sqlstm.sqadto[6] = (unsigned short )0; sqlstm.sqtdso[6] = (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); SQLCODE = sqlca.sqlcode; if (sqlca.sqlcode < 0) sql_error(); } for (j=1;j<=nch;j++) { fgets (line, 1024, f_station); /* Reading channel information */ sscanf (line, "%*s %*s %d %d %d", &dno, &channel_nb, &dch); printf ("\n\t\t Channel %d: %d\t%d", channel_nb, dno, dch); /* EXEC SQL INSERT INTO Station_Filamp_PChannel (sta, net, filamp_nb, pchannel_nb, next_hard_type, next_hard_nb, next_hard_pchannel, ondate, offdate, lddate) VALUES (:sta, :net, :i, :channel_nb, 'D', :dno, :dch, :s_dat, :e_dat, SYSDATE); */ { struct sqlexd sqlstm; sqlstm.sqlvsn = 10; sqlstm.arrsiz = 12; sqlstm.sqladtp = &sqladt; sqlstm.sqltdsp = &sqltds; sqlstm.stmt = "insert into Station_Filamp_PChannel(sta,net,filamp_nb,pc\ hannel_nb,next_hard_type,next_hard_nb,next_hard_pchannel,ondate,offdate,lddate\ ) values (:b0,:b1,:b2,:b3,'D',:b4,:b5,:b6,:b7,sysdate )"; sqlstm.iters = (unsigned int )1; sqlstm.offset = (unsigned int )375; sqlstm.cud = sqlcud0; sqlstm.sqlest = (unsigned char *)&sqlca; sqlstm.sqlety = (unsigned short)0; sqlstm.sqhstv[0] = ( void *)sta; sqlstm.sqhstl[0] = (unsigned int )7; sqlstm.sqhsts[0] = ( int )0; 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 *)net; sqlstm.sqhstl[1] = (unsigned int )9; sqlstm.sqhsts[1] = ( int )0; 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 *)&i; sqlstm.sqhstl[2] = (unsigned int )4; sqlstm.sqhsts[2] = ( int )0; 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.sqhstv[3] = ( void *)&channel_nb; sqlstm.sqhstl[3] = (unsigned int )4; sqlstm.sqhsts[3] = ( int )0; sqlstm.sqindv[3] = ( void *)0; sqlstm.sqinds[3] = ( int )0; sqlstm.sqharm[3] = (unsigned int )0; sqlstm.sqadto[3] = (unsigned short )0; sqlstm.sqtdso[3] = (unsigned short )0; sqlstm.sqhstv[4] = ( void *)&dno; sqlstm.sqhstl[4] = (unsigned int )4; sqlstm.sqhsts[4] = ( int )0; sqlstm.sqindv[4] = ( void *)0; sqlstm.sqinds[4] = ( int )0; sqlstm.sqharm[4] = (unsigned int )0; sqlstm.sqadto[4] = (unsigned short )0; sqlstm.sqtdso[4] = (unsigned short )0; sqlstm.sqhstv[5] = ( void *)&dch; sqlstm.sqhstl[5] = (unsigned int )4; sqlstm.sqhsts[5] = ( int )0; sqlstm.sqindv[5] = ( void *)0; sqlstm.sqinds[5] = ( int )0; sqlstm.sqharm[5] = (unsigned int )0; sqlstm.sqadto[5] = (unsigned short )0; sqlstm.sqtdso[5] = (unsigned short )0; sqlstm.sqhstv[6] = ( void *)s_dat; sqlstm.sqhstl[6] = (unsigned int )32; sqlstm.sqhsts[6] = ( int )0; sqlstm.sqindv[6] = ( void *)0; sqlstm.sqinds[6] = ( int )0; sqlstm.sqharm[6] = (unsigned int )0; sqlstm.sqadto[6] = (unsigned short )0; sqlstm.sqtdso[6] = (unsigned short )0; sqlstm.sqhstv[7] = ( void *)e_dat; sqlstm.sqhstl[7] = (unsigned int )32; sqlstm.sqhsts[7] = ( int )0; sqlstm.sqindv[7] = ( void *)0; sqlstm.sqinds[7] = ( int )0; sqlstm.sqharm[7] = (unsigned int )0; sqlstm.sqadto[7] = (unsigned short )0; sqlstm.sqtdso[7] = (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); SQLCODE = sqlca.sqlcode; if (sqlca.sqlcode < 0) sql_error(); } } } printf ("\n"); /* Reading digitizer information */ for (i=1;i<=nb_digi;i++) { fgets (line, 1024, f_station); /* Reading digitizer information */ sscanf (line, "%*s %s %d %d", digi_sn, &nb_pri, &nb_aux); nb_cha = nb_pri + nb_aux; printf ("\n\t Digitizer %d: %s\t%d\t%d", i, digi_sn, nb_pri, nb_aux); /* EXEC SQL INSERT INTO Station_Digitizer (sta, net, digi_nb, serial_nb, nb_pri_pchannel, nb_aux_pchannel, ondate, offdate, lddate) VALUES (:sta, :net, :i, :digi_sn, :nb_pri, :nb_aux, :s_dat, :e_dat, SYSDATE); */ { struct sqlexd sqlstm; sqlstm.sqlvsn = 10; sqlstm.arrsiz = 12; sqlstm.sqladtp = &sqladt; sqlstm.sqltdsp = &sqltds; sqlstm.stmt = "insert into Station_Digitizer(sta,net,digi_nb,serial_nb,n\ b_pri_pchannel,nb_aux_pchannel,ondate,offdate,lddate) values (:b0,:b1,:b2,:b3,\ :b4,:b5,:b6,:b7,sysdate )"; sqlstm.iters = (unsigned int )1; sqlstm.offset = (unsigned int )422; sqlstm.cud = sqlcud0; sqlstm.sqlest = (unsigned char *)&sqlca; sqlstm.sqlety = (unsigned short)0; sqlstm.sqhstv[0] = ( void *)sta; sqlstm.sqhstl[0] = (unsigned int )7; sqlstm.sqhsts[0] = ( int )0; 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 *)net; sqlstm.sqhstl[1] = (unsigned int )9; sqlstm.sqhsts[1] = ( int )0; 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 *)&i; sqlstm.sqhstl[2] = (unsigned int )4; sqlstm.sqhsts[2] = ( int )0; 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.sqhstv[3] = ( void *)digi_sn; sqlstm.sqhstl[3] = (unsigned int )32; sqlstm.sqhsts[3] = ( int )0; sqlstm.sqindv[3] = ( void *)0; sqlstm.sqinds[3] = ( int )0; sqlstm.sqharm[3] = (unsigned int )0; sqlstm.sqadto[3] = (unsigned short )0; sqlstm.sqtdso[3] = (unsigned short )0; sqlstm.sqhstv[4] = ( void *)&nb_pri; sqlstm.sqhstl[4] = (unsigned int )4; sqlstm.sqhsts[4] = ( int )0; sqlstm.sqindv[4] = ( void *)0; sqlstm.sqinds[4] = ( int )0; sqlstm.sqharm[4] = (unsigned int )0; sqlstm.sqadto[4] = (unsigned short )0; sqlstm.sqtdso[4] = (unsigned short )0; sqlstm.sqhstv[5] = ( void *)&nb_aux; sqlstm.sqhstl[5] = (unsigned int )4; sqlstm.sqhsts[5] = ( int )0; sqlstm.sqindv[5] = ( void *)0; sqlstm.sqinds[5] = ( int )0; sqlstm.sqharm[5] = (unsigned int )0; sqlstm.sqadto[5] = (unsigned short )0; sqlstm.sqtdso[5] = (unsigned short )0; sqlstm.sqhstv[6] = ( void *)s_dat; sqlstm.sqhstl[6] = (unsigned int )32; sqlstm.sqhsts[6] = ( int )0; sqlstm.sqindv[6] = ( void *)0; sqlstm.sqinds[6] = ( int )0; sqlstm.sqharm[6] = (unsigned int )0; sqlstm.sqadto[6] = (unsigned short )0; sqlstm.sqtdso[6] = (unsigned short )0; sqlstm.sqhstv[7] = ( void *)e_dat; sqlstm.sqhstl[7] = (unsigned int )32; sqlstm.sqhsts[7] = ( int )0; sqlstm.sqindv[7] = ( void *)0; sqlstm.sqinds[7] = ( int )0; sqlstm.sqharm[7] = (unsigned int )0; sqlstm.sqadto[7] = (unsigned short )0; sqlstm.sqtdso[7] = (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); SQLCODE = sqlca.sqlcode; if (sqlca.sqlcode < 0) sql_error(); } for (j=1;j<=nb_cha;j++) { fgets (line, 1024, f_station); /* Reading channel information */ strcpy (test, ""); sscanf (line, "%*s %*s %*s %*s %*s %*s %*s %s", test); if (strlen (test) == 0) { sscanf (line, "%*s %*s %d %s %d %d %s", &dln, dtyp, &channel_nb, &dlch, pol); drch = channel_nb; printf ("\n\t\t Channel %d (%d): %d\t%s\t%d\t%s", channel_nb, drch, dln, dtyp, dlch, pol); } else { sscanf (line, "%*s %*s %d %s %d %d %s %d", &dln, dtyp, &channel_nb, &dlch, pol, &drch); printf ("\n\t\t Channel %d (%d): %d\t%s\t%d\t%s", channel_nb, drch, dln, dtyp, dlch, pol); } /* EXEC SQL INSERT INTO Station_Digitizer_PChannel (sta, net, digi_nb, pchannel_nb, data_nb, data_pchannel, digi_type, digi_polarity, digi_channel, ondate, offdate, lddate) VALUES (:sta, :net, :i, :channel_nb, :dln, :dlch, :dtyp, :pol, :drch, :s_dat, :e_dat, SYSDATE); */ { struct sqlexd sqlstm; sqlstm.sqlvsn = 10; sqlstm.arrsiz = 12; sqlstm.sqladtp = &sqladt; sqlstm.sqltdsp = &sqltds; sqlstm.stmt = "insert into Station_Digitizer_PChannel(sta,net,digi_nb,p\ channel_nb,data_nb,data_pchannel,digi_type,digi_polarity,digi_channel,ondate,o\ ffdate,lddate) values (:b0,:b1,:b2,:b3,:b4,:b5,:b6,:b7,:b8,:b9,:b10,sysdate )"; sqlstm.iters = (unsigned int )1; sqlstm.offset = (unsigned int )469; sqlstm.cud = sqlcud0; sqlstm.sqlest = (unsigned char *)&sqlca; sqlstm.sqlety = (unsigned short)0; sqlstm.sqhstv[0] = ( void *)sta; sqlstm.sqhstl[0] = (unsigned int )7; sqlstm.sqhsts[0] = ( int )0; 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 *)net; sqlstm.sqhstl[1] = (unsigned int )9; sqlstm.sqhsts[1] = ( int )0; 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 *)&i; sqlstm.sqhstl[2] = (unsigned int )4; sqlstm.sqhsts[2] = ( int )0; 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.sqhstv[3] = ( void *)&channel_nb; sqlstm.sqhstl[3] = (unsigned int )4; sqlstm.sqhsts[3] = ( int )0; sqlstm.sqindv[3] = ( void *)0; sqlstm.sqinds[3] = ( int )0; sqlstm.sqharm[3] = (unsigned int )0; sqlstm.sqadto[3] = (unsigned short )0; sqlstm.sqtdso[3] = (unsigned short )0; sqlstm.sqhstv[4] = ( void *)&dln; sqlstm.sqhstl[4] = (unsigned int )4; sqlstm.sqhsts[4] = ( int )0; sqlstm.sqindv[4] = ( void *)0; sqlstm.sqinds[4] = ( int )0; sqlstm.sqharm[4] = (unsigned int )0; sqlstm.sqadto[4] = (unsigned short )0; sqlstm.sqtdso[4] = (unsigned short )0; sqlstm.sqhstv[5] = ( void *)&dlch; sqlstm.sqhstl[5] = (unsigned int )4; sqlstm.sqhsts[5] = ( int )0; sqlstm.sqindv[5] = ( void *)0; sqlstm.sqinds[5] = ( int )0; sqlstm.sqharm[5] = (unsigned int )0; sqlstm.sqadto[5] = (unsigned short )0; sqlstm.sqtdso[5] = (unsigned short )0; sqlstm.sqhstv[6] = ( void *)dtyp; sqlstm.sqhstl[6] = (unsigned int )32; sqlstm.sqhsts[6] = ( int )0; sqlstm.sqindv[6] = ( void *)0; sqlstm.sqinds[6] = ( int )0; sqlstm.sqharm[6] = (unsigned int )0; sqlstm.sqadto[6] = (unsigned short )0; sqlstm.sqtdso[6] = (unsigned short )0; sqlstm.sqhstv[7] = ( void *)pol; sqlstm.sqhstl[7] = (unsigned int )32; sqlstm.sqhsts[7] = ( int )0; sqlstm.sqindv[7] = ( void *)0; sqlstm.sqinds[7] = ( int )0; sqlstm.sqharm[7] = (unsigned int )0; sqlstm.sqadto[7] = (unsigned short )0; sqlstm.sqtdso[7] = (unsigned short )0; sqlstm.sqhstv[8] = ( void *)&drch; sqlstm.sqhstl[8] = (unsigned int )4; sqlstm.sqhsts[8] = ( int )0; sqlstm.sqindv[8] = ( void *)0; sqlstm.sqinds[8] = ( int )0; sqlstm.sqharm[8] = (unsigned int )0; sqlstm.sqadto[8] = (unsigned short )0; sqlstm.sqtdso[8] = (unsigned short )0; sqlstm.sqhstv[9] = ( void *)s_dat; sqlstm.sqhstl[9] = (unsigned int )32; sqlstm.sqhsts[9] = ( int )0; sqlstm.sqindv[9] = ( void *)0; sqlstm.sqinds[9] = ( int )0; sqlstm.sqharm[9] = (unsigned int )0; sqlstm.sqadto[9] = (unsigned short )0; sqlstm.sqtdso[9] = (unsigned short )0; sqlstm.sqhstv[10] = ( void *)e_dat; sqlstm.sqhstl[10] = (unsigned int )32; sqlstm.sqhsts[10] = ( int )0; sqlstm.sqindv[10] = ( void *)0; sqlstm.sqinds[10] = ( int )0; sqlstm.sqharm[10] = (unsigned int )0; sqlstm.sqadto[10] = (unsigned short )0; sqlstm.sqtdso[10] = (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); SQLCODE = sqlca.sqlcode; if (sqlca.sqlcode < 0) sql_error(); } } } printf ("\n"); /* Reading datalogger information */ for (i=1;i<=nb_data;i++) { fgets (line, 1024, f_station); /* Reading datalogger information */ sscanf (line, "%*s %s %d", data_sn, &dnch); printf ("\n\t Datalogger %d: %s\t%d", i, data_sn, dnch); /* EXEC SQL SELECT data_id INTO :data_id FROM Datalogger WHERE serial_nb = :data_sn AND :s_dat >= ondate AND :s_dat <= offdate; */ { struct sqlexd sqlstm; sqlstm.sqlvsn = 10; sqlstm.arrsiz = 12; sqlstm.sqladtp = &sqladt; sqlstm.sqltdsp = &sqltds; sqlstm.stmt = "select data_id into :b0 from Datalogger where ((serial_n\ b=:b1 and :b2>=ondate) and :b2<=offdate)"; sqlstm.iters = (unsigned int )1; sqlstm.offset = (unsigned int )528; sqlstm.selerr = (unsigned short)1; sqlstm.cud = sqlcud0; sqlstm.sqlest = (unsigned char *)&sqlca; sqlstm.sqlety = (unsigned short)0; sqlstm.sqhstv[0] = ( void *)&data_id; sqlstm.sqhstl[0] = (unsigned int )4; sqlstm.sqhsts[0] = ( int )0; 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 *)data_sn; sqlstm.sqhstl[1] = (unsigned int )32; sqlstm.sqhsts[1] = ( int )0; 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 *)s_dat; sqlstm.sqhstl[2] = (unsigned int )32; sqlstm.sqhsts[2] = ( int )0; 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.sqhstv[3] = ( void *)s_dat; sqlstm.sqhstl[3] = (unsigned int )32; sqlstm.sqhsts[3] = ( int )0; sqlstm.sqindv[3] = ( void *)0; sqlstm.sqinds[3] = ( int )0; sqlstm.sqharm[3] = (unsigned int )0; sqlstm.sqadto[3] = (unsigned short )0; sqlstm.sqtdso[3] = (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); SQLCODE = sqlca.sqlcode; if (sqlca.sqlcode < 0) sql_error(); } if (data_id == 0) { printf ("\n\n Error: Couldn't find datalogger [%s:%s].\n\n", data_sn, s_dat); /* EXEC SQL ROLLBACK WORK RELEASE; */ { struct sqlexd sqlstm; sqlstm.sqlvsn = 10; sqlstm.arrsiz = 12; sqlstm.sqladtp = &sqladt; sqlstm.sqltdsp = &sqltds; sqlstm.iters = (unsigned int )1; sqlstm.offset = (unsigned int )559; sqlstm.cud = sqlcud0; sqlstm.sqlest = (unsigned char *)&sqlca; sqlstm.sqlety = (unsigned short)0; sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn); SQLCODE = sqlca.sqlcode; if (sqlca.sqlcode < 0) sql_error(); } exit (0); } /* EXEC SQL INSERT INTO Station_Datalogger (sta, net, data_nb, data_id, nb_pchannel, ondate, offdate, lddate) VALUES (:sta, :net, :i, :data_id, :dnch, :s_dat, :e_dat, SYSDATE); */ { struct sqlexd sqlstm; sqlstm.sqlvsn = 10; sqlstm.arrsiz = 12; sqlstm.sqladtp = &sqladt; sqlstm.sqltdsp = &sqltds; sqlstm.stmt = "insert into Station_Datalogger(sta,net,data_nb,data_id,nb\ _pchannel,ondate,offdate,lddate) values (:b0,:b1,:b2,:b3,:b4,:b5,:b6,sysdate )"; sqlstm.iters = (unsigned int )1; sqlstm.offset = (unsigned int )574; sqlstm.cud = sqlcud0; sqlstm.sqlest = (unsigned char *)&sqlca; sqlstm.sqlety = (unsigned short)0; sqlstm.sqhstv[0] = ( void *)sta; sqlstm.sqhstl[0] = (unsigned int )7; sqlstm.sqhsts[0] = ( int )0; 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 *)net; sqlstm.sqhstl[1] = (unsigned int )9; sqlstm.sqhsts[1] = ( int )0; 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 *)&i; sqlstm.sqhstl[2] = (unsigned int )4; sqlstm.sqhsts[2] = ( int )0; 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.sqhstv[3] = ( void *)&data_id; sqlstm.sqhstl[3] = (unsigned int )4; sqlstm.sqhsts[3] = ( int )0; sqlstm.sqindv[3] = ( void *)0; sqlstm.sqinds[3] = ( int )0; sqlstm.sqharm[3] = (unsigned int )0; sqlstm.sqadto[3] = (unsigned short )0; sqlstm.sqtdso[3] = (unsigned short )0; sqlstm.sqhstv[4] = ( void *)&dnch; sqlstm.sqhstl[4] = (unsigned int )4; sqlstm.sqhsts[4] = ( int )0; sqlstm.sqindv[4] = ( void *)0; sqlstm.sqinds[4] = ( int )0; sqlstm.sqharm[4] = (unsigned int )0; sqlstm.sqadto[4] = (unsigned short )0; sqlstm.sqtdso[4] = (unsigned short )0; sqlstm.sqhstv[5] = ( void *)s_dat; sqlstm.sqhstl[5] = (unsigned int )32; sqlstm.sqhsts[5] = ( int )0; sqlstm.sqindv[5] = ( void *)0; sqlstm.sqinds[5] = ( int )0; sqlstm.sqharm[5] = (unsigned int )0; sqlstm.sqadto[5] = (unsigned short )0; sqlstm.sqtdso[5] = (unsigned short )0; sqlstm.sqhstv[6] = ( void *)e_dat; sqlstm.sqhstl[6] = (unsigned int )32; sqlstm.sqhsts[6] = ( int )0; sqlstm.sqindv[6] = ( void *)0; sqlstm.sqinds[6] = ( int )0; sqlstm.sqharm[6] = (unsigned int )0; sqlstm.sqadto[6] = (unsigned short )0; sqlstm.sqtdso[6] = (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); SQLCODE = sqlca.sqlcode; if (sqlca.sqlcode < 0) sql_error(); } for (j=1;j<=dnch;j++) { fgets (line, 1024, f_station); /* Reading physical channel information */ sscanf (line, "%*s %*s %d %s %d %*s %s %d", &channel_nb, dtyp, &dlch, seed_io, &nbf); printf ("\n\t\t Physical channel %d: %s\t%d\t%s\t%d", channel_nb, dtyp, dlch, seed_io, nbf); /* EXEC SQL INSERT INTO Station_Datalogger_PChannel (sta, net, data_nb, pchannel_nb, seed_io, nb_lchannel, ondate, offdate, lddate) VALUES (:sta, :net, :i, :channel_nb, :seed_io, :nbf, :s_dat, :e_dat, SYSDATE); */ { struct sqlexd sqlstm; sqlstm.sqlvsn = 10; sqlstm.arrsiz = 12; sqlstm.sqladtp = &sqladt; sqlstm.sqltdsp = &sqltds; sqlstm.stmt = "insert into Station_Datalogger_PChannel(sta,net,data_nb,\ pchannel_nb,seed_io,nb_lchannel,ondate,offdate,lddate) values (:b0,:b1,:b2,:b3\ ,:b4,:b5,:b6,:b7,sysdate )"; sqlstm.iters = (unsigned int )1; sqlstm.offset = (unsigned int )617; sqlstm.cud = sqlcud0; sqlstm.sqlest = (unsigned char *)&sqlca; sqlstm.sqlety = (unsigned short)0; sqlstm.sqhstv[0] = ( void *)sta; sqlstm.sqhstl[0] = (unsigned int )7; sqlstm.sqhsts[0] = ( int )0; 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 *)net; sqlstm.sqhstl[1] = (unsigned int )9; sqlstm.sqhsts[1] = ( int )0; 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 *)&i; sqlstm.sqhstl[2] = (unsigned int )4; sqlstm.sqhsts[2] = ( int )0; 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.sqhstv[3] = ( void *)&channel_nb; sqlstm.sqhstl[3] = (unsigned int )4; sqlstm.sqhsts[3] = ( int )0; sqlstm.sqindv[3] = ( void *)0; sqlstm.sqinds[3] = ( int )0; sqlstm.sqharm[3] = (unsigned int )0; sqlstm.sqadto[3] = (unsigned short )0; sqlstm.sqtdso[3] = (unsigned short )0; sqlstm.sqhstv[4] = ( void *)seed_io; sqlstm.sqhstl[4] = (unsigned int )32; sqlstm.sqhsts[4] = ( int )0; sqlstm.sqindv[4] = ( void *)0; sqlstm.sqinds[4] = ( int )0; sqlstm.sqharm[4] = (unsigned int )0; sqlstm.sqadto[4] = (unsigned short )0; sqlstm.sqtdso[4] = (unsigned short )0; sqlstm.sqhstv[5] = ( void *)&nbf; sqlstm.sqhstl[5] = (unsigned int )4; sqlstm.sqhsts[5] = ( int )0; sqlstm.sqindv[5] = ( void *)0; sqlstm.sqinds[5] = ( int )0; sqlstm.sqharm[5] = (unsigned int )0; sqlstm.sqadto[5] = (unsigned short )0; sqlstm.sqtdso[5] = (unsigned short )0; sqlstm.sqhstv[6] = ( void *)s_dat; sqlstm.sqhstl[6] = (unsigned int )32; sqlstm.sqhsts[6] = ( int )0; sqlstm.sqindv[6] = ( void *)0; sqlstm.sqinds[6] = ( int )0; sqlstm.sqharm[6] = (unsigned int )0; sqlstm.sqadto[6] = (unsigned short )0; sqlstm.sqtdso[6] = (unsigned short )0; sqlstm.sqhstv[7] = ( void *)e_dat; sqlstm.sqhstl[7] = (unsigned int )32; sqlstm.sqhsts[7] = ( int )0; sqlstm.sqindv[7] = ( void *)0; sqlstm.sqinds[7] = ( int )0; sqlstm.sqharm[7] = (unsigned int )0; sqlstm.sqadto[7] = (unsigned short )0; sqlstm.sqtdso[7] = (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); SQLCODE = sqlca.sqlcode; if (sqlca.sqlcode < 0) sql_error(); } for (k=1;k<=nbf;k++) { fgets (line, 1024, f_station); /* Reading logical channel information */ sscanf (line, "%*s %*s %s %f %f %f %s %s %s %s %d", seed, &sps, &mrgf, &ctol, dtyp, seq, dfmt, ctyp, &blks); printf ("\n\t\t\t Logical channel %d: %s %6.2f %5.2f %5.2f %s %s %s %s %d", k, seed, sps, mrgf, ctol, dtyp, seq, dfmt, ctyp, blks); /* Computing sequence of filters identifier */ seqfil_id = 0; /* EXEC SQL SELECT seqfil_id INTO :seqfil_id FROM Filter_Sequence WHERE name = :seq; */ { struct sqlexd sqlstm; sqlstm.sqlvsn = 10; sqlstm.arrsiz = 12; sqlstm.sqladtp = &sqladt; sqlstm.sqltdsp = &sqltds; sqlstm.stmt = "select seqfil_id into :b0 from Filter_Sequence where n\ ame=:b1"; sqlstm.iters = (unsigned int )1; sqlstm.offset = (unsigned int )664; sqlstm.selerr = (unsigned short)1; sqlstm.cud = sqlcud0; sqlstm.sqlest = (unsigned char *)&sqlca; sqlstm.sqlety = (unsigned short)0; sqlstm.sqhstv[0] = ( void *)&seqfil_id; sqlstm.sqhstl[0] = (unsigned int )4; sqlstm.sqhsts[0] = ( int )0; 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 *)seq; sqlstm.sqhstl[1] = (unsigned int )32; sqlstm.sqhsts[1] = ( int )0; 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.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); SQLCODE = sqlca.sqlcode; if (sqlca.sqlcode < 0) sql_error(); } if (seqfil_id == 0) { printf ("\n\n Error: Couldn't find sequence of filters [%s].\n\n", seq); /* EXEC SQL ROLLBACK WORK RELEASE; */ { struct sqlexd sqlstm; sqlstm.sqlvsn = 10; sqlstm.arrsiz = 12; sqlstm.sqladtp = &sqladt; sqlstm.sqltdsp = &sqltds; sqlstm.iters = (unsigned int )1; sqlstm.offset = (unsigned int )687; sqlstm.cud = sqlcud0; sqlstm.sqlest = (unsigned char *)&sqlca; sqlstm.sqlety = (unsigned short)0; sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn); SQLCODE = sqlca.sqlcode; if (sqlca.sqlcode < 0) sql_error(); } exit (0); } /* Computing compression type */ comp_type = 0; if (!strcmp (ctyp, "STEIM1")) strcpy (ctyp, "Steim-1%"); else if (!strcmp (ctyp, "STEIM2")) strcpy (ctyp, "Steim-2%"); /* EXEC SQL SELECT id INTO :comp_type FROM D_Format WHERE name LIKE :ctyp; */ { struct sqlexd sqlstm; sqlstm.sqlvsn = 10; sqlstm.arrsiz = 12; sqlstm.sqladtp = &sqladt; sqlstm.sqltdsp = &sqltds; sqlstm.stmt = "select id into :b0 from D_Format where name like :b1"; sqlstm.iters = (unsigned int )1; sqlstm.offset = (unsigned int )702; sqlstm.selerr = (unsigned short)1; sqlstm.cud = sqlcud0; sqlstm.sqlest = (unsigned char *)&sqlca; sqlstm.sqlety = (unsigned short)0; sqlstm.sqhstv[0] = ( void *)&comp_type; sqlstm.sqhstl[0] = (unsigned int )4; sqlstm.sqhsts[0] = ( int )0; 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 *)ctyp; sqlstm.sqhstl[1] = (unsigned int )32; sqlstm.sqhsts[1] = ( int )0; 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.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); SQLCODE = sqlca.sqlcode; if (sqlca.sqlcode < 0) sql_error(); } if (comp_type == 0) fprintf (f_err, "\n Error: Data Format %s not found.\n\n"); /* Retrieving digitizer links */ /* EXEC SQL SELECT digi_nb, pchannel_nb INTO :digi_nb, :digi_pchannel_nb FROM Station_Digitizer_PChannel WHERE sta = :sta AND net = :net AND ondate = :s_dat AND data_nb = :i AND data_pchannel = :channel_nb; */ { struct sqlexd sqlstm; sqlstm.sqlvsn = 10; sqlstm.arrsiz = 12; sqlstm.sqladtp = &sqladt; sqlstm.sqltdsp = &sqltds; sqlstm.stmt = "select digi_nb ,pchannel_nb into :b0,:b1 from Station\ _Digitizer_PChannel where ((((sta=:b2 and net=:b3) and ondate=:b4) and data_nb\ =:b5) and data_pchannel=:b6)"; sqlstm.iters = (unsigned int )1; sqlstm.offset = (unsigned int )725; sqlstm.selerr = (unsigned short)1; sqlstm.cud = sqlcud0; sqlstm.sqlest = (unsigned char *)&sqlca; sqlstm.sqlety = (unsigned short)0; sqlstm.sqhstv[0] = ( void *)&digi_nb; sqlstm.sqhstl[0] = (unsigned int )4; sqlstm.sqhsts[0] = ( int )0; 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 *)&digi_pchannel_nb; sqlstm.sqhstl[1] = (unsigned int )4; sqlstm.sqhsts[1] = ( int )0; 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 *)sta; sqlstm.sqhstl[2] = (unsigned int )7; sqlstm.sqhsts[2] = ( int )0; 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.sqhstv[3] = ( void *)net; sqlstm.sqhstl[3] = (unsigned int )9; sqlstm.sqhsts[3] = ( int )0; sqlstm.sqindv[3] = ( void *)0; sqlstm.sqinds[3] = ( int )0; sqlstm.sqharm[3] = (unsigned int )0; sqlstm.sqadto[3] = (unsigned short )0; sqlstm.sqtdso[3] = (unsigned short )0; sqlstm.sqhstv[4] = ( void *)s_dat; sqlstm.sqhstl[4] = (unsigned int )32; sqlstm.sqhsts[4] = ( int )0; sqlstm.sqindv[4] = ( void *)0; sqlstm.sqinds[4] = ( int )0; sqlstm.sqharm[4] = (unsigned int )0; sqlstm.sqadto[4] = (unsigned short )0; sqlstm.sqtdso[4] = (unsigned short )0; sqlstm.sqhstv[5] = ( void *)&i; sqlstm.sqhstl[5] = (unsigned int )4; sqlstm.sqhsts[5] = ( int )0; sqlstm.sqindv[5] = ( void *)0; sqlstm.sqinds[5] = ( int )0; sqlstm.sqharm[5] = (unsigned int )0; sqlstm.sqadto[5] = (unsigned short )0; sqlstm.sqtdso[5] = (unsigned short )0; sqlstm.sqhstv[6] = ( void *)&channel_nb; sqlstm.sqhstl[6] = (unsigned int )4; sqlstm.sqhsts[6] = ( int )0; sqlstm.sqindv[6] = ( void *)0; sqlstm.sqinds[6] = ( int )0; sqlstm.sqharm[6] = (unsigned int )0; sqlstm.sqadto[6] = (unsigned short )0; sqlstm.sqtdso[6] = (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); SQLCODE = sqlca.sqlcode; if (sqlca.sqlcode < 0) sql_error(); } /* Testing if filter/amplifier is present */ filamp_nb = 0; /* EXEC SQL SELECT filamp_nb, pchannel_nb INTO :filamp_nb, :filamp_pchannel_nb FROM Station_Filamp_PChannel WHERE sta = :sta AND net = :net AND ondate = :s_dat AND next_hard_type = 'D' AND next_hard_nb = :digi_nb AND next_hard_pchannel = :digi_pchannel_nb; */ { struct sqlexd sqlstm; sqlstm.sqlvsn = 10; sqlstm.arrsiz = 12; sqlstm.sqladtp = &sqladt; sqlstm.sqltdsp = &sqltds; sqlstm.stmt = "select filamp_nb ,pchannel_nb into :b0,:b1 from Statio\ n_Filamp_PChannel where (((((sta=:b2 and net=:b3) and ondate=:b4) and next_har\ d_type='D') and next_hard_nb=:b5) and next_hard_pchannel=:b6)"; sqlstm.iters = (unsigned int )1; sqlstm.offset = (unsigned int )768; sqlstm.selerr = (unsigned short)1; sqlstm.cud = sqlcud0; sqlstm.sqlest = (unsigned char *)&sqlca; sqlstm.sqlety = (unsigned short)0; sqlstm.sqhstv[0] = ( void *)&filamp_nb; sqlstm.sqhstl[0] = (unsigned int )4; sqlstm.sqhsts[0] = ( int )0; 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 *)&filamp_pchannel_nb; sqlstm.sqhstl[1] = (unsigned int )4; sqlstm.sqhsts[1] = ( int )0; 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 *)sta; sqlstm.sqhstl[2] = (unsigned int )7; sqlstm.sqhsts[2] = ( int )0; 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.sqhstv[3] = ( void *)net; sqlstm.sqhstl[3] = (unsigned int )9; sqlstm.sqhsts[3] = ( int )0; sqlstm.sqindv[3] = ( void *)0; sqlstm.sqinds[3] = ( int )0; sqlstm.sqharm[3] = (unsigned int )0; sqlstm.sqadto[3] = (unsigned short )0; sqlstm.sqtdso[3] = (unsigned short )0; sqlstm.sqhstv[4] = ( void *)s_dat; sqlstm.sqhstl[4] = (unsigned int )32; sqlstm.sqhsts[4] = ( int )0; sqlstm.sqindv[4] = ( void *)0; sqlstm.sqinds[4] = ( int )0; sqlstm.sqharm[4] = (unsigned int )0; sqlstm.sqadto[4] = (unsigned short )0; sqlstm.sqtdso[4] = (unsigned short )0; sqlstm.sqhstv[5] = ( void *)&digi_nb; sqlstm.sqhstl[5] = (unsigned int )4; sqlstm.sqhsts[5] = ( int )0; sqlstm.sqindv[5] = ( void *)0; sqlstm.sqinds[5] = ( int )0; sqlstm.sqharm[5] = (unsigned int )0; sqlstm.sqadto[5] = (unsigned short )0; sqlstm.sqtdso[5] = (unsigned short )0; sqlstm.sqhstv[6] = ( void *)&digi_pchannel_nb; sqlstm.sqhstl[6] = (unsigned int )4; sqlstm.sqhsts[6] = ( int )0; sqlstm.sqindv[6] = ( void *)0; sqlstm.sqinds[6] = ( int )0; sqlstm.sqharm[6] = (unsigned int )0; sqlstm.sqadto[6] = (unsigned short )0; sqlstm.sqtdso[6] = (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); SQLCODE = sqlca.sqlcode; if (sqlca.sqlcode < 0) sql_error(); } /* Retrieving filter-amplifier and/or sensor information */ if (filamp_nb == 0) { /* EXEC SQL SELECT sensor_nb, component_nb INTO :sensor_nb, :component_nb FROM Station_Sensor_Component WHERE sta = :sta AND net = :net AND ondate = :s_dat AND next_hard_type = 'D' AND next_hard_nb = :digi_nb AND next_hard_pchannel = :digi_pchannel_nb; */ { struct sqlexd sqlstm; sqlstm.sqlvsn = 10; sqlstm.arrsiz = 12; sqlstm.sqladtp = &sqladt; sqlstm.sqltdsp = &sqltds; sqlstm.stmt = "select sensor_nb ,component_nb into :b0,:b1 from Stat\ ion_Sensor_Component where (((((sta=:b2 and net=:b3) and ondate=:b4) and next_\ hard_type='D') and next_hard_nb=:b5) and next_hard_pchannel=:b6)"; sqlstm.iters = (unsigned int )1; sqlstm.offset = (unsigned int )811; sqlstm.selerr = (unsigned short)1; sqlstm.cud = sqlcud0; sqlstm.sqlest = (unsigned char *)&sqlca; sqlstm.sqlety = (unsigned short)0; sqlstm.sqhstv[0] = ( void *)&sensor_nb; sqlstm.sqhstl[0] = (unsigned int )4; sqlstm.sqhsts[0] = ( int )0; 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 *)&component_nb; sqlstm.sqhstl[1] = (unsigned int )4; sqlstm.sqhsts[1] = ( int )0; 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 *)sta; sqlstm.sqhstl[2] = (unsigned int )7; sqlstm.sqhsts[2] = ( int )0; 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.sqhstv[3] = ( void *)net; sqlstm.sqhstl[3] = (unsigned int )9; sqlstm.sqhsts[3] = ( int )0; sqlstm.sqindv[3] = ( void *)0; sqlstm.sqinds[3] = ( int )0; sqlstm.sqharm[3] = (unsigned int )0; sqlstm.sqadto[3] = (unsigned short )0; sqlstm.sqtdso[3] = (unsigned short )0; sqlstm.sqhstv[4] = ( void *)s_dat; sqlstm.sqhstl[4] = (unsigned int )32; sqlstm.sqhsts[4] = ( int )0; sqlstm.sqindv[4] = ( void *)0; sqlstm.sqinds[4] = ( int )0; sqlstm.sqharm[4] = (unsigned int )0; sqlstm.sqadto[4] = (unsigned short )0; sqlstm.sqtdso[4] = (unsigned short )0; sqlstm.sqhstv[5] = ( void *)&digi_nb; sqlstm.sqhstl[5] = (unsigned int )4; sqlstm.sqhsts[5] = ( int )0; sqlstm.sqindv[5] = ( void *)0; sqlstm.sqinds[5] = ( int )0; sqlstm.sqharm[5] = (unsigned int )0; sqlstm.sqadto[5] = (unsigned short )0; sqlstm.sqtdso[5] = (unsigned short )0; sqlstm.sqhstv[6] = ( void *)&digi_pchannel_nb; sqlstm.sqhstl[6] = (unsigned int )4; sqlstm.sqhsts[6] = ( int )0; sqlstm.sqindv[6] = ( void *)0; sqlstm.sqinds[6] = ( int )0; sqlstm.sqharm[6] = (unsigned int )0; sqlstm.sqadto[6] = (unsigned short )0; sqlstm.sqtdso[6] = (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); SQLCODE = sqlca.sqlcode; if (sqlca.sqlcode < 0) sql_error(); } } else { /* EXEC SQL SELECT sensor_nb, component_nb INTO :sensor_nb, :component_nb FROM Station_Sensor_Component WHERE sta = :sta AND net = :net AND ondate = :s_dat AND next_hard_type = 'F' AND next_hard_nb = :filamp_nb AND next_hard_pchannel = :filamp_pchannel_nb; */ { struct sqlexd sqlstm; sqlstm.sqlvsn = 10; sqlstm.arrsiz = 12; sqlstm.sqladtp = &sqladt; sqlstm.sqltdsp = &sqltds; sqlstm.stmt = "select sensor_nb ,component_nb into :b0,:b1 from Stat\ ion_Sensor_Component where (((((sta=:b2 and net=:b3) and ondate=:b4) and next_\ hard_type='F') and next_hard_nb=:b5) and next_hard_pchannel=:b6)"; sqlstm.iters = (unsigned int )1; sqlstm.offset = (unsigned int )854; sqlstm.selerr = (unsigned short)1; sqlstm.cud = sqlcud0; sqlstm.sqlest = (unsigned char *)&sqlca; sqlstm.sqlety = (unsigned short)0; sqlstm.sqhstv[0] = ( void *)&sensor_nb; sqlstm.sqhstl[0] = (unsigned int )4; sqlstm.sqhsts[0] = ( int )0; 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 *)&component_nb; sqlstm.sqhstl[1] = (unsigned int )4; sqlstm.sqhsts[1] = ( int )0; 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 *)sta; sqlstm.sqhstl[2] = (unsigned int )7; sqlstm.sqhsts[2] = ( int )0; 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.sqhstv[3] = ( void *)net; sqlstm.sqhstl[3] = (unsigned int )9; sqlstm.sqhsts[3] = ( int )0; sqlstm.sqindv[3] = ( void *)0; sqlstm.sqinds[3] = ( int )0; sqlstm.sqharm[3] = (unsigned int )0; sqlstm.sqadto[3] = (unsigned short )0; sqlstm.sqtdso[3] = (unsigned short )0; sqlstm.sqhstv[4] = ( void *)s_dat; sqlstm.sqhstl[4] = (unsigned int )32; sqlstm.sqhsts[4] = ( int )0; sqlstm.sqindv[4] = ( void *)0; sqlstm.sqinds[4] = ( int )0; sqlstm.sqharm[4] = (unsigned int )0; sqlstm.sqadto[4] = (unsigned short )0; sqlstm.sqtdso[4] = (unsigned short )0; sqlstm.sqhstv[5] = ( void *)&filamp_nb; sqlstm.sqhstl[5] = (unsigned int )4; sqlstm.sqhsts[5] = ( int )0; sqlstm.sqindv[5] = ( void *)0; sqlstm.sqinds[5] = ( int )0; sqlstm.sqharm[5] = (unsigned int )0; sqlstm.sqadto[5] = (unsigned short )0; sqlstm.sqtdso[5] = (unsigned short )0; sqlstm.sqhstv[6] = ( void *)&filamp_pchannel_nb; sqlstm.sqhstl[6] = (unsigned int )4; sqlstm.sqhsts[6] = ( int )0; sqlstm.sqindv[6] = ( void *)0; sqlstm.sqinds[6] = ( int )0; sqlstm.sqharm[6] = (unsigned int )0; sqlstm.sqadto[6] = (unsigned short )0; sqlstm.sqtdso[6] = (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); SQLCODE = sqlca.sqlcode; if (sqlca.sqlcode < 0) sql_error(); } } /* EXEC SQL SELECT sensor_id INTO :sensor_id FROM Station_Sensor WHERE sta = :sta AND net = :net AND ondate = :s_dat AND sensor_nb = :sensor_nb; */ { struct sqlexd sqlstm; sqlstm.sqlvsn = 10; sqlstm.arrsiz = 12; sqlstm.sqladtp = &sqladt; sqlstm.sqltdsp = &sqltds; sqlstm.stmt = "select sensor_id into :b0 from Station_Sensor where ((\ (sta=:b1 and net=:b2) and ondate=:b3) and sensor_nb=:b4)"; sqlstm.iters = (unsigned int )1; sqlstm.offset = (unsigned int )897; sqlstm.selerr = (unsigned short)1; sqlstm.cud = sqlcud0; sqlstm.sqlest = (unsigned char *)&sqlca; sqlstm.sqlety = (unsigned short)0; sqlstm.sqhstv[0] = ( void *)&sensor_id; sqlstm.sqhstl[0] = (unsigned int )4; sqlstm.sqhsts[0] = ( int )0; 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 *)sta; sqlstm.sqhstl[1] = (unsigned int )7; sqlstm.sqhsts[1] = ( int )0; 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 *)net; sqlstm.sqhstl[2] = (unsigned int )9; sqlstm.sqhsts[2] = ( int )0; 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.sqhstv[3] = ( void *)s_dat; sqlstm.sqhstl[3] = (unsigned int )32; sqlstm.sqhsts[3] = ( int )0; sqlstm.sqindv[3] = ( void *)0; sqlstm.sqinds[3] = ( int )0; sqlstm.sqharm[3] = (unsigned int )0; sqlstm.sqadto[3] = (unsigned short )0; sqlstm.sqtdso[3] = (unsigned short )0; sqlstm.sqhstv[4] = ( void *)&sensor_nb; sqlstm.sqhstl[4] = (unsigned int )4; sqlstm.sqhsts[4] = ( int )0; sqlstm.sqindv[4] = ( void *)0; sqlstm.sqinds[4] = ( int )0; sqlstm.sqharm[4] = (unsigned int )0; sqlstm.sqadto[4] = (unsigned short )0; sqlstm.sqtdso[4] = (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); SQLCODE = sqlca.sqlcode; if (sqlca.sqlcode < 0) sql_error(); } /* Computing units of signal */ unit_signal = 0; /* EXEC SQL SELECT DISTINCT unit_in INTO :unit_signal FROM Response WHERE seqresp_id = (SELECT seqresp_id FROM Sensor_Component WHERE sensor_id = :sensor_id AND component_nb = :component_nb); */ { struct sqlexd sqlstm; sqlstm.sqlvsn = 10; sqlstm.arrsiz = 12; sqlstm.sqladtp = &sqladt; sqlstm.sqltdsp = &sqltds; sqlstm.stmt = "select distinct unit_in into :b0 from Response where s\ eqresp_id=(select seqresp_id from Sensor_Component where (sensor_id=:b1 and c\ omponent_nb=:b2))"; sqlstm.iters = (unsigned int )1; sqlstm.offset = (unsigned int )932; sqlstm.selerr = (unsigned short)1; sqlstm.cud = sqlcud0; sqlstm.sqlest = (unsigned char *)&sqlca; sqlstm.sqlety = (unsigned short)0; sqlstm.sqhstv[0] = ( void *)&unit_signal; sqlstm.sqhstl[0] = (unsigned int )4; sqlstm.sqhsts[0] = ( int )0; 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 *)&sensor_id; sqlstm.sqhstl[1] = (unsigned int )4; sqlstm.sqhsts[1] = ( int )0; 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 *)&component_nb; sqlstm.sqhstl[2] = (unsigned int )4; sqlstm.sqhsts[2] = ( int )0; 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; sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn); SQLCODE = sqlca.sqlcode; if (sqlca.sqlcode < 0) sql_error(); } if (unit_signal == 0) { printf ("\n\n Error: Couldn't find units of sensor [%d:%d:%s:%d].\n\n", sensor_nb, sensor_id, sensor_sn, component_nb); /* EXEC SQL ROLLBACK WORK RELEASE; */ { struct sqlexd sqlstm; sqlstm.sqlvsn = 10; sqlstm.arrsiz = 12; sqlstm.sqladtp = &sqladt; sqlstm.sqltdsp = &sqltds; sqlstm.iters = (unsigned int )1; sqlstm.offset = (unsigned int )959; sqlstm.cud = sqlcud0; sqlstm.sqlest = (unsigned char *)&sqlca; sqlstm.sqlety = (unsigned short)0; sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn); SQLCODE = sqlca.sqlcode; if (sqlca.sqlcode < 0) sql_error(); } exit (0); } /* Computing units of calibration */ unit_calib = 0; /* EXEC SQL SELECT id INTO :unit_calib FROM D_Unit WHERE name = 'A'; */ { struct sqlexd sqlstm; sqlstm.sqlvsn = 10; sqlstm.arrsiz = 12; sqlstm.sqladtp = &sqladt; sqlstm.sqltdsp = &sqltds; sqlstm.stmt = "select id into :b0 from D_Unit where name='A'"; sqlstm.iters = (unsigned int )1; sqlstm.offset = (unsigned int )974; sqlstm.selerr = (unsigned short)1; sqlstm.cud = sqlcud0; sqlstm.sqlest = (unsigned char *)&sqlca; sqlstm.sqlety = (unsigned short)0; sqlstm.sqhstv[0] = ( void *)&unit_calib; sqlstm.sqhstl[0] = (unsigned int )4; sqlstm.sqhsts[0] = ( int )0; 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.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); SQLCODE = sqlca.sqlcode; if (sqlca.sqlcode < 0) sql_error(); } if (unit_calib == 0) { /* EXEC SQL SELECT uniseq.NEXTVAL INTO :unit_calib FROM DUAL; */ { struct sqlexd sqlstm; sqlstm.sqlvsn = 10; sqlstm.arrsiz = 12; sqlstm.sqladtp = &sqladt; sqlstm.sqltdsp = &sqltds; sqlstm.stmt = "select uniseq.nextval into :b0 from DUAL "; sqlstm.iters = (unsigned int )1; sqlstm.offset = (unsigned int )993; sqlstm.selerr = (unsigned short)1; sqlstm.cud = sqlcud0; sqlstm.sqlest = (unsigned char *)&sqlca; sqlstm.sqlety = (unsigned short)0; sqlstm.sqhstv[0] = ( void *)&unit_calib; sqlstm.sqhstl[0] = (unsigned int )4; sqlstm.sqhsts[0] = ( int )0; 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.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); SQLCODE = sqlca.sqlcode; if (sqlca.sqlcode < 0) sql_error(); } /* EXEC SQL INSERT INTO D_Unit (id, name, description) VALUES (:unit_calib, 'A', NULL); */ { struct sqlexd sqlstm; sqlstm.sqlvsn = 10; sqlstm.arrsiz = 12; sqlstm.sqladtp = &sqladt; sqlstm.sqltdsp = &sqltds; sqlstm.stmt = "insert into D_Unit(id,name,description) values (:b0,'A\ ',null )"; sqlstm.iters = (unsigned int )1; sqlstm.offset = (unsigned int )1012; sqlstm.cud = sqlcud0; sqlstm.sqlest = (unsigned char *)&sqlca; sqlstm.sqlety = (unsigned short)0; sqlstm.sqhstv[0] = ( void *)&unit_calib; sqlstm.sqhstl[0] = (unsigned int )4; sqlstm.sqhsts[0] = ( int )0; 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.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); SQLCODE = sqlca.sqlcode; if (sqlca.sqlcode < 0) sql_error(); } } /* EXEC SQL INSERT INTO Station_Datalogger_LChannel (sta, net, data_nb, pchannel_nb, lchannel_nb, seqfil_id, seedchan, channel, channelsrc, location, rgain, rfrequency, samprate, clock_drift, flags, data_format, comp_type, unit_signal, unit_calib, block_size, ondate, offdate, remark, lddate) VALUES (:sta, :net, :i, :channel_nb, :k, :seqfil_id, :seed, :seed, 'SEED', ' ', NULL, :mrgf, :sps, :ctol, :dtyp, :dfmt, :comp_type, :unit_signal, :unit_calib, :blks, :s_dat, :e_dat, NULL, SYSDATE); */ { struct sqlexd sqlstm; sqlstm.sqlvsn = 10; sqlstm.arrsiz = 19; sqlstm.sqladtp = &sqladt; sqlstm.sqltdsp = &sqltds; sqlstm.stmt = "insert into Station_Datalogger_LChannel(sta,net,data_nb\ ,pchannel_nb,lchannel_nb,seqfil_id,seedchan,channel,channelsrc,location,rgain,\ rfrequency,samprate,clock_drift,flags,data_format,comp_type,unit_signal,unit_c\ alib,block_size,ondate,offdate,remark,lddate) values (:b0,:b1,:b2,:b3,:b4,:b5,\ :b6,:b6,'SEED',' ',null ,:b8,:b9,:b10,:b11,:b12,:b13,:b14,:b15,:b16,:b17,:b18\ ,null ,sysdate )"; sqlstm.iters = (unsigned int )1; sqlstm.offset = (unsigned int )1031; sqlstm.cud = sqlcud0; sqlstm.sqlest = (unsigned char *)&sqlca; sqlstm.sqlety = (unsigned short)0; sqlstm.sqhstv[0] = ( void *)sta; sqlstm.sqhstl[0] = (unsigned int )7; sqlstm.sqhsts[0] = ( int )0; 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 *)net; sqlstm.sqhstl[1] = (unsigned int )9; sqlstm.sqhsts[1] = ( int )0; 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 *)&i; sqlstm.sqhstl[2] = (unsigned int )4; sqlstm.sqhsts[2] = ( int )0; 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.sqhstv[3] = ( void *)&channel_nb; sqlstm.sqhstl[3] = (unsigned int )4; sqlstm.sqhsts[3] = ( int )0; sqlstm.sqindv[3] = ( void *)0; sqlstm.sqinds[3] = ( int )0; sqlstm.sqharm[3] = (unsigned int )0; sqlstm.sqadto[3] = (unsigned short )0; sqlstm.sqtdso[3] = (unsigned short )0; sqlstm.sqhstv[4] = ( void *)&k; sqlstm.sqhstl[4] = (unsigned int )4; sqlstm.sqhsts[4] = ( int )0; sqlstm.sqindv[4] = ( void *)0; sqlstm.sqinds[4] = ( int )0; sqlstm.sqharm[4] = (unsigned int )0; sqlstm.sqadto[4] = (unsigned short )0; sqlstm.sqtdso[4] = (unsigned short )0; sqlstm.sqhstv[5] = ( void *)&seqfil_id; sqlstm.sqhstl[5] = (unsigned int )4; sqlstm.sqhsts[5] = ( int )0; sqlstm.sqindv[5] = ( void *)0; sqlstm.sqinds[5] = ( int )0; sqlstm.sqharm[5] = (unsigned int )0; sqlstm.sqadto[5] = (unsigned short )0; sqlstm.sqtdso[5] = (unsigned short )0; sqlstm.sqhstv[6] = ( void *)seed; sqlstm.sqhstl[6] = (unsigned int )32; sqlstm.sqhsts[6] = ( int )0; sqlstm.sqindv[6] = ( void *)0; sqlstm.sqinds[6] = ( int )0; sqlstm.sqharm[6] = (unsigned int )0; sqlstm.sqadto[6] = (unsigned short )0; sqlstm.sqtdso[6] = (unsigned short )0; sqlstm.sqhstv[7] = ( void *)seed; sqlstm.sqhstl[7] = (unsigned int )32; sqlstm.sqhsts[7] = ( int )0; sqlstm.sqindv[7] = ( void *)0; sqlstm.sqinds[7] = ( int )0; sqlstm.sqharm[7] = (unsigned int )0; sqlstm.sqadto[7] = (unsigned short )0; sqlstm.sqtdso[7] = (unsigned short )0; sqlstm.sqhstv[8] = ( void *)&mrgf; sqlstm.sqhstl[8] = (unsigned int )4; sqlstm.sqhsts[8] = ( int )0; sqlstm.sqindv[8] = ( void *)0; sqlstm.sqinds[8] = ( int )0; sqlstm.sqharm[8] = (unsigned int )0; sqlstm.sqadto[8] = (unsigned short )0; sqlstm.sqtdso[8] = (unsigned short )0; sqlstm.sqhstv[9] = ( void *)&sps; sqlstm.sqhstl[9] = (unsigned int )4; sqlstm.sqhsts[9] = ( int )0; sqlstm.sqindv[9] = ( void *)0; sqlstm.sqinds[9] = ( int )0; sqlstm.sqharm[9] = (unsigned int )0; sqlstm.sqadto[9] = (unsigned short )0; sqlstm.sqtdso[9] = (unsigned short )0; sqlstm.sqhstv[10] = ( void *)&ctol; sqlstm.sqhstl[10] = (unsigned int )4; sqlstm.sqhsts[10] = ( int )0; sqlstm.sqindv[10] = ( void *)0; sqlstm.sqinds[10] = ( int )0; sqlstm.sqharm[10] = (unsigned int )0; sqlstm.sqadto[10] = (unsigned short )0; sqlstm.sqtdso[10] = (unsigned short )0; sqlstm.sqhstv[11] = ( void *)dtyp; sqlstm.sqhstl[11] = (unsigned int )32; sqlstm.sqhsts[11] = ( int )0; sqlstm.sqindv[11] = ( void *)0; sqlstm.sqinds[11] = ( int )0; sqlstm.sqharm[11] = (unsigned int )0; sqlstm.sqadto[11] = (unsigned short )0; sqlstm.sqtdso[11] = (unsigned short )0; sqlstm.sqhstv[12] = ( void *)dfmt; sqlstm.sqhstl[12] = (unsigned int )32; sqlstm.sqhsts[12] = ( int )0; sqlstm.sqindv[12] = ( void *)0; sqlstm.sqinds[12] = ( int )0; sqlstm.sqharm[12] = (unsigned int )0; sqlstm.sqadto[12] = (unsigned short )0; sqlstm.sqtdso[12] = (unsigned short )0; sqlstm.sqhstv[13] = ( void *)&comp_type; sqlstm.sqhstl[13] = (unsigned int )4; sqlstm.sqhsts[13] = ( int )0; sqlstm.sqindv[13] = ( void *)0; sqlstm.sqinds[13] = ( int )0; sqlstm.sqharm[13] = (unsigned int )0; sqlstm.sqadto[13] = (unsigned short )0; sqlstm.sqtdso[13] = (unsigned short )0; sqlstm.sqhstv[14] = ( void *)&unit_signal; sqlstm.sqhstl[14] = (unsigned int )4; sqlstm.sqhsts[14] = ( int )0; sqlstm.sqindv[14] = ( void *)0; sqlstm.sqinds[14] = ( int )0; sqlstm.sqharm[14] = (unsigned int )0; sqlstm.sqadto[14] = (unsigned short )0; sqlstm.sqtdso[14] = (unsigned short )0; sqlstm.sqhstv[15] = ( void *)&unit_calib; sqlstm.sqhstl[15] = (unsigned int )4; sqlstm.sqhsts[15] = ( int )0; sqlstm.sqindv[15] = ( void *)0; sqlstm.sqinds[15] = ( int )0; sqlstm.sqharm[15] = (unsigned int )0; sqlstm.sqadto[15] = (unsigned short )0; sqlstm.sqtdso[15] = (unsigned short )0; sqlstm.sqhstv[16] = ( void *)&blks; sqlstm.sqhstl[16] = (unsigned int )4; sqlstm.sqhsts[16] = ( int )0; sqlstm.sqindv[16] = ( void *)0; sqlstm.sqinds[16] = ( int )0; sqlstm.sqharm[16] = (unsigned int )0; sqlstm.sqadto[16] = (unsigned short )0; sqlstm.sqtdso[16] = (unsigned short )0; sqlstm.sqhstv[17] = ( void *)s_dat; sqlstm.sqhstl[17] = (unsigned int )32; sqlstm.sqhsts[17] = ( int )0; sqlstm.sqindv[17] = ( void *)0; sqlstm.sqinds[17] = ( int )0; sqlstm.sqharm[17] = (unsigned int )0; sqlstm.sqadto[17] = (unsigned short )0; sqlstm.sqtdso[17] = (unsigned short )0; sqlstm.sqhstv[18] = ( void *)e_dat; sqlstm.sqhstl[18] = (unsigned int )32; sqlstm.sqhsts[18] = ( int )0; sqlstm.sqindv[18] = ( void *)0; sqlstm.sqinds[18] = ( int )0; sqlstm.sqharm[18] = (unsigned int )0; sqlstm.sqadto[18] = (unsigned short )0; sqlstm.sqtdso[18] = (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); SQLCODE = sqlca.sqlcode; if (sqlca.sqlcode < 0) sql_error(); } } } } } fgets (line, 1024, f_station); } fprintf (f_err, "\n"); printf ("\n\n"); /* Closing error file */ fclose (f_err); /* Closing station file */ fclose (f_station); /* Disconnect from the database */ printf ("\n Disconnecting from ORACLE ...\n\n"); /* EXEC SQL COMMIT WORK RELEASE; */ { struct sqlexd sqlstm; sqlstm.sqlvsn = 10; sqlstm.arrsiz = 19; sqlstm.sqladtp = &sqladt; sqlstm.sqltdsp = &sqltds; sqlstm.iters = (unsigned int )1; sqlstm.offset = (unsigned int )1122; sqlstm.cud = sqlcud0; sqlstm.sqlest = (unsigned char *)&sqlca; sqlstm.sqlety = (unsigned short)0; sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn); SQLCODE = sqlca.sqlcode; if (sqlca.sqlcode < 0) sql_error(); } exit(0); } /*************************************/ /* Handle errors. Exit on any error. */ /*************************************/ void sql_error() { char msg[512]; size_t buf_len, msg_len; /* EXEC SQL WHENEVER SQLERROR CONTINUE; */ buf_len = sizeof(msg); sqlglm(msg, &buf_len, &msg_len); fprintf(f_err, "\nORACLE error detected:"); fprintf(f_err, "\n%.*s \n", msg_len, msg); printf("\nORACLE error detected:"); printf("\n%.*s \n", msg_len, msg); /*EXEC SQL ROLLBACK WORK RELEASE; exit(1);*/ }