private Program(String[] args) { _options = new Options(); if (!CommandLine.Parser.Default.ParseArguments(args, _options)) { throw new Exception("Unexpected command line."); } var iconfig = _options.ParseInputOption(); if (iconfig == Options.InputConfiguration.Invalid) { Console.WriteLine("The input source must be a SQL Profiler capture file or a live SQL connection."); Console.WriteLine("\tTo use an input file, specify the TRC file with -f"); Console.WriteLine( "\tTo use a live connection, specify the SQL connection string with -c and the SQL Profiler configuration with -t"); Console.WriteLine(); Console.WriteLine(_options.GetUsage()); Environment.Exit(-1); } if (iconfig == Options.InputConfiguration.File) { // use a file source _traceSource = new TraceSource(_options.InputFile); } else { // use a SQL connection source var csb = new SqlConnectionStringBuilder(_options.SqlConnectionString); var conn = csb.IntegratedSecurity ? new SqlConnectionInfo(csb.DataSource) : new SqlConnectionInfo(csb.DataSource, csb.UserID, csb.Password); _traceSource = new TraceSource(conn, _options.TdfFile); } }