public static DataTable GetData(string queryST, ref string retErr) { DataTable EventDT = new DataTable("EventDT"); try { // Instantiate the LogQuery object LogQuery oLogQuery = new LogQuery(); // Instantiate the Event Log Input Format object EventLogInputFormat oEVTInputFormat = new EventLogInputFormat(); // Set its "direction" parameter to "BW" oEVTInputFormat.direction = "BW"; // Execute the query LogRecordSet oRecordSet = oLogQuery.Execute(queryST, oEVTInputFormat); int i = 0; for (; i < oRecordSet.getColumnCount(); i++) { string colnm; colnm = oRecordSet.getColumnName(i); EventDT.Columns.Add(new DataColumn(colnm, typeof(string))); } for (; !oRecordSet.atEnd(); oRecordSet.moveNext()) { MSUtil.ILogRecord rowLP = null; rowLP = oRecordSet.getRecord(); // populate holding table with site name & summary bytes for the period DataRow dr = EventDT.NewRow(); for (int ct = 0; ct < i; ct++) { dr[ct] = rowLP.getValue(ct); } EventDT.Rows.Add(dr); } // Close the recordset oRecordSet.close(); } catch (Exception exc) { retErr = "Unexpected error: " + exc.Message; } return(EventDT); }
public override object ExecuteScalar() { checkCmd(); try { LogRecordSet oRecordSet = this.connection.Query.Execute(this.cmdText, this.connection.LogFormat); dynamic ret = oRecordSet.getRecord().getValue(0); oRecordSet.close(); return(ret); } catch (System.Runtime.InteropServices.COMException exc) { throw exc; } }
public static DataTable FSquery(string queryST, ref string retErr) { DataTable resultsDT = new DataTable("resultsDT"); try { // Instantiate the LogQuery object LogQuery oLogQuery = new LogQuery(); // Instantiate the File System Input Format object FileSystemInputFormat oFSInputFormat = new MSUtil.COMFileSystemInputContextClassClass(); // Execute the query LogRecordSet oRecordSet = oLogQuery.Execute(queryST, oFSInputFormat); int i = 0; for (; i < oRecordSet.getColumnCount(); i++) { string colnm; colnm = oRecordSet.getColumnName(i); resultsDT.Columns.Add(new DataColumn(colnm, typeof(string))); } for (; !oRecordSet.atEnd(); oRecordSet.moveNext()) { MSUtil.ILogRecord rowLP = null; rowLP = oRecordSet.getRecord(); DataRow dr = resultsDT.NewRow(); for (int ct = 0; ct < i; ct++) { dr[ct] = rowLP.getValue(ct); } resultsDT.Rows.Add(dr); } // Close the recordset oRecordSet.close(); } catch (Exception exc) { retErr = "Unexpected error: " + exc.Message; } return(resultsDT); }
public DataTable readFromEvt(string sql) { try { DataTable datat = new DataTable(); datat.Columns.Add("事件ID", typeof(string)); datat.Columns.Add("日期", typeof(string)); datat.Columns.Add("来源", typeof(string)); datat.Columns.Add("描述", typeof(string)); // Instantiate the LogQuery object LogQuery oLogQuery = new LogQuery(); // Instantiate the Event Log Input Format object EvtInputFormat oEvtInputFormat = new EvtInputFormat(); // Set its "direction" parameter to "BW" //oEvtInputFormat.direction = "BW"; // Create the query string query = sql; // Execute the query LogRecordSet oRecordSet = oLogQuery.Execute(query, oEvtInputFormat); while (!oRecordSet.atEnd()) { var itemData = oRecordSet.getRecord(); DataRow dr = datat.NewRow(); dr["事件ID"] = itemData.getValue("EventID").ToString(); dr["日期"] = itemData.getValue("TimeGenerated").ToString(); dr["来源"] = itemData.getValue("SourceName").ToString(); dr["描述"] = itemData.getValue("Message").ToString(); datat.Rows.Add(dr); oRecordSet.moveNext(); } // Close the recordset oRecordSet.close(); return(datat); } catch (System.Runtime.InteropServices.COMException exc) { MessageBox.Show("Unexpected error: " + exc.Message); return(null); } }
public QueryResult Execute() { lock (syncRoot) { this.isRunning = true; } Stopwatch watch = Stopwatch.StartNew(); //if (this.logQuery != null) //{ // System.Runtime.InteropServices.Marshal.ReleaseComObject(this.logQuery); // GC.SuppressFinalize(this.logQuery); // this.logQuery = null; //} //this.logQuery = new MSUtil.LogQueryClassClass(); this.results = null; QueryResult queryResult = new QueryResult(); //MSUtil.COMChartOutputContextClassClass outPutFormat = new MSUtil.COMChartOutputContextClassClass(); //outPutFormat.chartType = "PieExploded3D"; //outPutFormat.view = true; // MSUtil.COMXMLOutputContextClassClass outPutFormat = new MSUtil.COMChartOutputContextClassClass(); // this.logQuery.ExecuteBatch(Text, this.inputFormat, outPutFormat); // return null; MSUtil.ILogRecordset recordset = this.logQuery.Execute(Text, this.inputFormat); // TODO throw event on query finished bool columnsExtracted = false; long unitProcessed = 0; // Browse the recordset for (; !recordset.atEnd() && unitProcessed < this.maxUnitsInResults /* && !cancelComputing.WaitOne(0,false) */; recordset.moveNext()) { MSUtil.ILogRecord record = recordset.getRecord(); // Remplissage des colonnes if (!columnsExtracted) { for (int c = 0; c < recordset.getColumnCount(); c++) { DataColumn col = new DataColumn(recordset.getColumnName(c)); //object logRecord = record.getValueEx(c); switch (recordset.getColumnType(c)) { case 1: // int32 col.DataType = typeof(int); break; case 2: // double col.DataType = typeof(double); break; case 4: // datetime col.DataType = typeof(DateTime); break; default: col.DataType = typeof(string); break; } queryResult.DataTable.Columns.Add(col); } columnsExtracted = true; } // on insert les datas DataRow dr = queryResult.DataTable.NewRow(); dr[0] = record.getValue(0).ToString(); //dataTableResults.ExtendedProperties.Add("source", record.getValue(0).ToString()); for (int c = 1; c < recordset.getColumnCount(); c++) { if (record.getValue(c) != DBNull.Value) { dr[c] = record.getValue(c).ToString(); } } //logQuery.inputUnitsProcessed; unitProcessed++; queryResult.DataTable.Rows.Add(dr); // MainForm.StatusBar.Text = string.Format("Computing in progress ... {0} line(s)",unitProcessed); } // MainForm.StatusBar.Text = string.Format("{0} input units processed",recordset.inputUnitsProcessed); recordset.close(); queryResult.Duration = watch.Elapsed; lock (syncRoot) { this.isRunning = false; } this.results = queryResult; return(this.results); }
public static QueryResult Execute(string query, string inputName, Dictionary <PropertyInfo, object> properties) { Stopwatch watch = Stopwatch.StartNew(); int maxUnitsInResults = 5000; // TODO add this to user settings MSUtil.LogQueryClassClass logQuery = new MSUtil.LogQueryClassClass(); QueryResult queryResult = new QueryResult(); object inputFormat = SqalpApplication.Inputs[inputName].CreateInstance(); foreach (PropertyInfo propertyInfo in properties.Keys) { try { propertyInfo.SetValue(inputFormat, properties[propertyInfo], null); } catch (Exception ex) { System.Diagnostics.Debug.WriteLine(ex); } } MSUtil.ILogRecordset recordset = logQuery.Execute(query, inputFormat); bool columnsExtracted = false; long unitProcessed = 0; // Browse the recordset for (; !recordset.atEnd() && unitProcessed < maxUnitsInResults /* && !cancelComputing.WaitOne(0,false) */; recordset.moveNext()) { MSUtil.ILogRecord record = recordset.getRecord(); // Remplissage des colonnes if (!columnsExtracted) { for (int c = 0; c < recordset.getColumnCount(); c++) { DataColumn col = new DataColumn(recordset.getColumnName(c)); //object logRecord = record.getValueEx(c); switch (recordset.getColumnType(c)) { case 1: // int32 col.DataType = typeof(int); break; case 2: // double col.DataType = typeof(double); break; case 4: // datetime col.DataType = typeof(DateTime); break; default: col.DataType = typeof(string); break; } queryResult.DataTable.Columns.Add(col); } columnsExtracted = true; } // on insert les datas DataRow dr = queryResult.DataTable.NewRow(); dr[0] = record.getValue(0).ToString(); //dataTableResults.ExtendedProperties.Add("source", record.getValue(0).ToString()); for (int c = 1; c < recordset.getColumnCount(); c++) { if (record.getValue(c) != DBNull.Value) { dr[c] = record.getValue(c).ToString(); } } //logQuery.inputUnitsProcessed; unitProcessed++; queryResult.DataTable.Rows.Add(dr); // MainForm.StatusBar.Text = string.Format("Computing in progress ... {0} line(s)",unitProcessed); } // MainForm.StatusBar.Text = string.Format("{0} input units processed",recordset.inputUnitsProcessed); recordset.close(); queryResult.Duration = watch.Elapsed; if (logQuery != null) { System.Runtime.InteropServices.Marshal.ReleaseComObject(logQuery); GC.SuppressFinalize(logQuery); logQuery = null; } return(queryResult); }
private void btIIS(object sender, RoutedEventArgs e) { if (Common.checkLogParser()) { #region 日志分析 //string filename = ""; Microsoft.Win32.OpenFileDialog dialogOpenFile = new Microsoft.Win32.OpenFileDialog(); dialogOpenFile.Filter = "IIS日志文件(*.log)|*.log"; dialogOpenFile.RestoreDirectory = true; dialogOpenFile.Multiselect = true;//允许同时选择多个文件 //dialogOpenFile.InitialDirectory = "c:\\"; //dialogOpenFile.FilterIndex = 2; List <string> filenames = new List <string>(); if (dialogOpenFile.ShowDialog() == true) { //filename = dialogOpenFile.FileName; for (int fi = 0; fi < dialogOpenFile.FileNames.Length; fi++) { filenames.Add(dialogOpenFile.FileNames[fi].ToString()); } } else { return; } //初始化 LogQuery oLogQuery = new LogQuery(); IISInputFormat oIISInputFormat = new IISInputFormat(); DataTable datat = new DataTable(); datat.Columns.Add("date", typeof(string)); datat.Columns.Add("time", typeof(string)); datat.Columns.Add("method", typeof(string)); datat.Columns.Add("uri", typeof(string)); datat.Columns.Add("query", typeof(string)); datat.Columns.Add("ip", typeof(string)); datat.Columns.Add("status", typeof(string)); datat.Columns.Add("useragent", typeof(string)); foreach (string filename in filenames) { string query = @"SELECT date,time,cs-method,cs-uri-stem,cs-uri-query,c-ip,sc-status,cs(User-Agent) from '" + filename + "'";// GROUP BY c-ip LogRecordSet oRecordSet = oLogQuery.Execute(query, oIISInputFormat); while (!oRecordSet.atEnd()) { var itemData = oRecordSet.getRecord(); DataRow dr = datat.NewRow(); dr["date"] = itemData.getValue("date").ToString("yyyy-MM-dd"); dr["time"] = itemData.getValue("time").ToString("hh:mm:ss"); dr["method"] = itemData.getValue("cs-method").ToString(); dr["uri"] = itemData.getValue("cs-uri-stem").ToString(); dr["query"] = itemData.getValue("cs-uri-query").ToString(); dr["ip"] = itemData.getValue("c-ip").ToString(); dr["status"] = itemData.getValue("sc-status").ToString(); dr["useragent"] = itemData.getValue("cs(User-Agent)").ToString(); datat.Rows.Add(dr); oRecordSet.moveNext(); } oRecordSet.close(); } dgQueryResult.Columns[0].Header = (object)("日期"); dgQueryResult.Columns[1].Header = (object)("时间"); dgQueryResult.Columns[2].Header = (object)("方法"); dgQueryResult.Columns[3].Header = (object)("相对路径"); dgQueryResult.Columns[4].Header = (object)("查询"); dgQueryResult.Columns[5].Header = (object)("IP"); dgQueryResult.Columns[6].Header = (object)("状态"); dgQueryResult.Columns[7].Header = (object)("用户代理"); dgQueryResult.DataContext = datat.DefaultView; #endregion } else { Xceed.Wpf.Toolkit.MessageBox.Show("该功能需要安装LogParser.", "警告", MessageBoxButton.OK, MessageBoxImage.Exclamation); System.Diagnostics.ProcessStartInfo Info = new System.Diagnostics.ProcessStartInfo(); //设置外部程序名 Info.FileName = "LogParser.msi"; //设置外部程序工作目录为 C:\ //Info.WorkingDirectory = @"D:\常用软件\eclipse"; //最小化方式启动 //Info.WindowStyle = System.Diagnostics.ProcessWindowStyle.Minimized; //声明一个程序类 System.Diagnostics.Process Proc; try { Proc = System.Diagnostics.Process.Start(Info); System.Threading.Thread.Sleep(500); } catch (System.ComponentModel.Win32Exception) { return; } } }