加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Log Parser C Example

发布时间:2020-12-16 09:17:24 所属栏目:百科 来源:网络整理
导读:Log Parser C Example Log Parser is a free command-line tool from Microsoft that lets you run SQL queries against a variety of log files and other system data sources,and get the results out to an array of destinations,from SQL tables to CS

Log Parser C Example


Log Parser is a free command-line tool from Microsoft that lets you run SQL queries against a variety of log files and other system data sources,and get the results out to an array of destinations,from SQL tables to CSV files

#include <atlbase.h>
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
#include "LogParser.tlh"   //由下一行产生 
//#import "LogParser.dll" raw_native_types //由type library产生.tlh .tli
int main()
{
  ::CoInitialize( NULL );        // COM 初始化
  MSUtil::ILogQuery *plog;
  MSUtil::ICOMCSVInputContext *pin;
  MSUtil::ILogRecordset *pset;
 
  //CLSID clsid1;
  //HRESULT hr1 = ::CLSIDFromProgID( L"MSUtil.LogQuery",&clsid1 ); 
//assert( SUCCEEDED( hr1 ) );    // 如果失败,说明没有注册组件
  //__uuidof()可取代CLSIDFromProgID
  HRESULT hr = ::CoCreateInstance( __uuidof(MSUtil::LogQueryClass),NULL,CLSCTX_INPROC_SERVER,__uuidof(MSUtil::ILogQuery),(LPVOID *)&plog );
  assert( SUCCEEDED( hr ) );
 
  hr = ::CoCreateInstance( __uuidof(MSUtil::COMCSVInputContextClass),__uuidof(MSUtil::ICOMCSVInputContext),(LPVOID *)&pin );
 
  pset = plog->Execute(L"select * from DailyLog.csv where Score>50",pin);
  int ncount = 0;
  while(!pset->atEnd())
  {     
      /*VARIANT idx;
      VariantInit(&idx);
      idx.bstrVal = L"Score";
      idx.vt = VT_BSTR;
      */
      for(int i=2;i<=11;i++)
      {
       CComVariant idx(i); //若不用CComVariant则须用上面Variant 被mark的部分
       //用debug检查返回Variant里面是什么型态
         CComVariant val = pset->getRecord()->getValue(idx);
         if(val.vt == VT_BSTR)
             wprintf(L"%st",val.bstrVal);
         else if(val.vt == VT_I4)
             printf("%dt",val.lVal);
      }
      printf("n");
      ncount++;
      pset->moveNext();
  }
  printf("Total:%dn",ncount);
 
  return 0;   
}

原文:大专栏 ?Log Parser C Example

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读