File name: visit/vstat (2,691 bytes) Text file viewer v1.2
    1 : #!/bin/wel
    2 : 
    3 : /*  vstat
    4 : 
    5 :     접속기록으로 통계자료 일괄 작성하기(서광현)
    6 : 
    7 :     Copyright (c) 2000/01/10 by Wesoft
    8 :     All Rights Reserved.
    9 : 
   10 : */
   11 : 
   12 : CREATE_STAT_DB=
   13 : {[
   14 : CREATE TABLE stat (
   15 :   d0  uint, d1  uint, d2  uint, d3  uint, d4  uint, d5  uint,
   16 :   d6  uint, d7  uint, d8  uint, d9  uint, d10 uint, d11 uint,
   17 :   d12 uint, d13 uint, d14 uint, d15 uint, d16 uint, d17 uint,
   18 :   d18 uint, d19 uint, d20 uint, d21 uint, d22 uint, d23 uint,
   19 :   d24 uint, d25 uint, d26 uint, d27 uint, d28 uint, d29 uint,
   20 :   d30 uint, d31 uint,
   21 : 
   22 :   h0  uint, h1  uint, h2  uint, h3  uint, h4  uint, h5  uint,
   23 :   h6  uint, h7  uint, h8  uint, h9  uint, h10 uint, h11 uint,
   24 :   h12 uint, h13 uint, h14 uint, h15 uint, h16 uint, h17 uint,
   25 :   h18 uint, h19 uint, h20 uint, h21 uint, h22 uint, h23 uint,
   26 : 
   27 :   w0  uint, w1  uint, w2  uint, w3  uint, w4  uint, w5  uint,
   28 :   w6  uint,
   29 : 
   30 :   total uint,
   31 :   fdate char(14),
   32 :   ldate char(14)
   33 : )
   34 : ]}
   35 : 
   36 :   Qhost= "";
   37 :   Qdb= "visit";
   38 :   Qtable= "visit";
   39 : 
   40 :   qstr= "select * from " ~ Qtable;
   41 :   socket= msqlConnect(Qhost);
   42 :   if(socket==MSQL_ERR)
   43 :     {
   44 :        print("mSQL 서버 '", Qhost, "'를 연결할 수 없습니다!!!\n");
   45 :        return(-1);
   46 :     }
   47 :   if(msqlSelectDB(socket, Qdb)==MSQL_ERR)
   48 :     {
   49 :        print("데이터 베이스 '", Qdb,"'를 개방할 수 없습니다!!!\n");
   50 :        return(-1);
   51 :     }
   52 :   if(msqlQuery(socket, qstr)==MSQL_ERR)
   53 :     {
   54 :        print("Query 에러: ", qstr, "\n");
   55 :        return(-1);
   56 :     }
   57 : 
   58 :   result= msqlStoreResult();
   59 :   rows_count= msqlNumRows(result);
   60 :   fields_count= msqlNumFields(result);
   61 :   int dcnt[31], hcnt[23], wcnt[6];
   62 :   free field[fields_count];
   63 :   for(i=0; i<rows_count; i++)
   64 :     {
   65 :        row= msqlFetchRow(result);
   66 :        for(j=0; j<fields_count; j++) field[j+1]= row[j];
   67 :        ++dcnt[field[5]];
   68 :        ++hcnt[field[6]];
   69 :        ++wcnt[field[9]];
   70 :        if(i==0) fdate= field[3] ~ field[4] ~ field[5]
   71 :                      ~ field[6] ~ field[7] ~ field[8];
   72 :     }
   73 :   ldate= field[3] ~ field[4] ~ field[5] ~ field[6] ~ field[7] ~ field[8];
   74 :   msqlFreeResult(result);
   75 : 
   76 : 
   77 :   Qstat= "stat";
   78 :   msqlQuery(socket, "drop table " ~ Qstat); // 통계 table 삭제
   79 :   rt= msqlQuery(socket, CREATE_STAT_DB);    // 통계 table 생성
   80 :   if(rt==MSQL_ERR)
   81 :    {
   82 :       print("통계 테이블을 생성할 수 없습니다!!!\n");
   83 :    }
   84 :   qstr= "insert into stat values(";
   85 :   for(i=0; i<=31; i++) qstr~= dcnt[i] ~ ",";
   86 :   for(i=0; i<=23; i++) qstr~= hcnt[i] ~ ",";
   87 :   for(i=0; i<=6; i++) qstr~= wcnt[i] ~ ",";
   88 :   qstr~= rows_count ~ ",'" ~ fdate ~ "','" ~ ldate ~ "')";
   89 :   rt= msqlQuery(socket, qstr); // 통계 table에 자료 기록
   90 :   if(rt==MSQL_ERR)
   91 :    {
   92 :       print("통계 테이블을 갱신할 수 없습니다!!!\n");
   93 :       print("qstr=", qstr, "\n");
   94 :    }
   95 :   msqlClose(socket);
   96 : 
   97 : //////////////////////////// 프로그램 종료 /////////////////////////////
File name: visit/vstat (2,691 bytes) Wesoft Corp. ⓒ 2001 All rights reserved.