2012-05-14 1 views
0

Я пытаюсь реализовать MS LogParser в приложении C#. Это компилируется отлично, но необъяснимо сбой в методе logQuery.ExecuteBatch(). Блок try/catch не поймает его, если я специально не нарушаю szQuery, который предполагает, что все работает так, как должно, я просто не получаю никакого вывода.Ошибка LogParser без ошибок в C#

Любые мысли о том, почему это может произойти сбой или где я могу найти некоторые записи?

using System; using System.Collections.Generic; using System.Linq; using System.Text; using FolderLoggingLib; using MSUtil;

namespace ConsoleApplication20 { class Program { static void Main(string[] args) { //refLog = new BinaryInputFormat(); LogQueryClass logQuery = new LogQueryClass(); ICOMCSVOutputContext output = new COMCSVOutputContextClass(); ILogParserInputContext parse = new BinaryInputFormat();

string szFileName = @"E:\Programming\FolderLogging\2012-05-13.fbl"; string szQuery = "SELECT Folder, User, Record, DB, TO_LOCALTIME(Timestamp) AS DateTime, Operation, Checked FROM " + szFileName + " ORDER BY DateTime DESC"; try { logQuery.ExecuteBatch(szQuery, parse, output); } catch { }; } }

}

+1

try catch (Exception ex), чтобы узнать, какое исключение вы получите и опубликуете подробности. –

+0

Пробовал - он никогда не достигает блока catch, программа просто умирает в методе logQuery.ExecuteBatch(). –

ответ

1

Использование Execute вместо ExecuteBatch:

MSUtil.ILogRecordset RecordSet = logQuery.Execute(query, oInputFormat) 

Если вы хотите экспортировать в CSV в примере кода вам необходимо изменить запрос, добавив INTO output_file_name и запустить ExecuteBatch:

string szQuery = "SELECT Folder, User, Record, DB, TO_LOCALTIME(Timestamp) AS DateTime, Operation, Checked **INTO c:\out\out.csv** FROM " + szFileName + " ORDER BY DateTime DESC";