/*******************************************************/ /* INCLUDE TIME HEADER */ #include #include "DBCOMM.H" /*******************************************************/ /* DEFINE SQLCA FOR DB CALLS*/ EXEC SQL INCLUDE SQLCA; /*******************************************************/ /* DEFINE HOST VARIABLES USED TO STORE DATA RETRIEVED FROM DB*/ EXEC SQL BEGIN DECLARE SECTION; short num_rows; EXEC SQL END DECLARE SECTION; /*******************************************************/ /* DEFINE USER FUNCTION DELTA THAT WILL CALCULATE TIME */ /* DEFINE VARIABLES NEEDED TO EXECUTE FUNCTION */ static double delta (time_t, time_t, unsigned short, unsigned short); struct timeb dbeg, dend; double qtimebm = 0.0; /******************************************************/ /* BEGIN MAIN THAT WILL TIME 1 SQL CALL */ short far bmark() { /******************************************************/ /* GET START TIME */ ftime (&dbeg); /******************************************************/ /* SQL FUNCTION BEING TIMED */ EXEC SQL SELECT COUNT(*) INTO :num_rows FROM BMCHUGH.CHECKING; /******************************************************/ /******************************************************/ /* GET END TIME */ ftime(&dend); /******************************************************/ /* SUBTRACT END TIME - START TIME TO GET TOTAL TIME TO EXECUTE SQL */ qtimebm += delta(dbeg.time, dend.time, dbeg.millitm, dend.millitm); // RETURN 0 IF SUCCESS ELSE RETURN 3 IF FAILED ELSE RETURN 4 FOR NO DEMO return(4); } /******************************************************/ /* USER FUNCTION DELTA THAT WILL CALCULATE TIME */ /* SUBTRACES END TIME FROM START TIME TO DERIVE TOTAL */ /* TIME TO EXECUTE SQL */ static double delta(a, b, c, d) time_t a,b; unsigned short c,d; { double e; e = (double) (b - a); e = e*1000.0 +(d - c); e = e/((1000.0)); return(e); }/* end delta */ /*****************************************************/