home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: Product / Product.zip / DBDEMO.ZIP / DEMOFLS.ZIP / BMARK.TXT < prev    next >
Text File  |  1991-05-29  |  2KB  |  67 lines

  1. /*******************************************************/
  2. /* INCLUDE TIME HEADER */
  3. #include <sys\timeb.h>
  4. #include "DBCOMM.H"
  5.  
  6. /*******************************************************/
  7. /* DEFINE SQLCA FOR DB CALLS*/
  8.   EXEC SQL INCLUDE SQLCA;
  9.  
  10. /*******************************************************/
  11. /* DEFINE HOST VARIABLES USED TO STORE DATA RETRIEVED FROM DB*/
  12.   EXEC SQL BEGIN DECLARE SECTION;
  13.   short num_rows;
  14.   EXEC SQL END DECLARE SECTION;
  15.  
  16.  
  17. /*******************************************************/
  18. /* DEFINE USER FUNCTION DELTA THAT WILL CALCULATE TIME */
  19. /* DEFINE VARIABLES NEEDED TO EXECUTE FUNCTION */
  20.  static double delta (time_t, time_t, unsigned short, unsigned short);
  21.  struct timeb dbeg, dend;
  22.  double qtimebm = 0.0;
  23.  
  24.  
  25. /******************************************************/
  26. /* BEGIN MAIN THAT WILL TIME 1 SQL CALL */
  27. short far bmark()
  28. {
  29.  
  30. /******************************************************/
  31. /* GET START TIME  */
  32.      ftime (&dbeg);
  33.  
  34. /******************************************************/
  35. /* SQL FUNCTION BEING TIMED */
  36.  
  37.      EXEC SQL SELECT COUNT(*)
  38.          INTO :num_rows
  39.          FROM BMCHUGH.CHECKING;
  40. /******************************************************/
  41.  
  42. /******************************************************/
  43. /* GET END TIME  */
  44.      ftime(&dend);
  45.  
  46. /******************************************************/
  47. /* SUBTRACT END TIME - START TIME TO GET TOTAL TIME TO EXECUTE SQL */
  48.      qtimebm += delta(dbeg.time, dend.time, dbeg.millitm, dend.millitm);
  49.  
  50. // RETURN 0 IF SUCCESS ELSE RETURN 3 IF FAILED ELSE RETURN 4 FOR NO DEMO
  51. return(4);
  52. }
  53. /******************************************************/
  54. /* USER FUNCTION DELTA THAT WILL CALCULATE TIME       */
  55. /* SUBTRACES END TIME FROM START TIME TO DERIVE TOTAL */
  56. /* TIME TO EXECUTE SQL                                */
  57. static double delta(a, b, c, d)
  58. time_t a,b;
  59. unsigned short c,d;
  60. {
  61.     double e;
  62.     e = (double) (b - a);
  63.     e = e*1000.0 +(d - c);
  64.     e = e/((1000.0));
  65.     return(e);
  66. }/* end delta */
  67. /*****************************************************/