2012-05-14 6 views
0

J'essaie d'implémenter MS LogParser dans une application C#. Cela compile correctement mais inexplicablement les plantages sur la méthode logQuery.ExecuteBatch(). Le bloc try/catch ne l'attrape pas à moins que je ne déforme spécifiquement le szQuery, ce qui suggère que tout fonctionne comme il se doit, je ne reçois aucune sortie.LogParser se bloque sans erreur en C#

Avez-vous des idées sur les raisons pour lesquelles il pourrait se bloquer ou sur les endroits où je pourrais trouver des traces?

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) pour voir quelle exception vous obtenez et afficher les détails. –

+0

Essayé - il n'atteint jamais le bloc catch, le programme meurt juste sur la méthode logQuery.ExecuteBatch(). –

Répondre

1

Utilisez Exécuter au lieu de executeBatch:

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

Si vous souhaitez exporter au format CSV dans votre exemple de code que vous devez modifier la requête en ajoutant INTO output_file_name et exécutez 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"; 
Questions connexes