SQLDiagRunner.Runner.ExecuteQueries C# (CSharp) Method

ExecuteQueries() public method

public ExecuteQueries ( IList servers, string username, string password, string scriptLocation, string outputFolder, IList databases, bool useTrusted, bool autoFitColumns, int queryTimeoutSeconds ) : void
servers IList
username string
password string
scriptLocation string
outputFolder string
databases IList
useTrusted bool
autoFitColumns bool
queryTimeoutSeconds int
return void
        public void ExecuteQueries(
            IList<string> servers,
            string username,
            string password,
            string scriptLocation,
            string outputFolder,
            IList<string> databases,
            bool useTrusted,
            bool autoFitColumns,
            int queryTimeoutSeconds
        )
        {
            var parser = new QueryFileParser(scriptLocation);
            var queries = parser.Load();
            var serverQueries = queries.Where(q => q.ServerScope).ToList();
            var dbQueries = queries.Where(q => !q.ServerScope).ToList();

            foreach (var servername in servers)
            {
                var dateString = DateTime.Now.ToString("yyyyMMdd_hhmmss_");
                _dictWorksheet.Clear();

                var outputFilepath = GetOutputFilepath(outputFolder, servername, dateString);

                using (var fs = new FileStream(outputFilepath, FileMode.Create))
                {
                    using (var pck = new ExcelPackage(fs))
                    {
                        var connectionString = GetConnectionStringTemplate(servername, "master", username, password, useTrusted);

                        ExecuteQueriesAndSaveToExcel(pck, connectionString, serverQueries, "", "", autoFitColumns, queryTimeoutSeconds);

                        int databaseNo = 1;
                        foreach (var db in databases)
                        {
                            connectionString = GetConnectionStringTemplate(servername, db, username, password, useTrusted);
                            ExecuteQueriesAndSaveToExcel(pck, connectionString, dbQueries, db.Trim(),
                                                         databaseNo.ToString(CultureInfo.InvariantCulture),
                                                         autoFitColumns, queryTimeoutSeconds);
                            databaseNo++;
                        }

                        pck.Save();
                    }
                }
            }
        }

Usage Example

コード例 #1
0
ファイル: MainForm.cs プロジェクト: sqlTobi/SQLDiagCmd
        private void BtExecuteClick(object sender, EventArgs e)
        {
            try
            {
                Cursor.Current = Cursors.WaitCursor;

                if (File.Exists(txtOutputFolder.Text))
                {
                    string msg = string.Format("Output File Exists:  {0}\r\n\r\nDo you want to overwrite it?", txtOutputFolder.Text);
                    DialogResult dr = MessageBox.Show(msg, "File Exists", MessageBoxButtons.YesNo,
                                                      MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2);
                    if (dr == DialogResult.No)
                    {
                        txtOutputFolder.Focus();
                        return;
                    }
                }

                var databases = new List<string>(txtDBs.Text.Trim().Split(new[] { ';' }, StringSplitOptions.RemoveEmptyEntries));

                var runner = new Runner();
                runner.ExecuteQueries(txtServer.Text, txtUsername.Text, txtPassword.Text,
                                      txtScriptLocation.Text, txtOutputFolder.Text, databases,
                                      chkTrustedConnection.Checked, chkAutoFitExcelColumns.Checked, Int32.Parse(txtTimeout.Text));
            }
            finally
            {
                Cursor.Current = Cursors.Default;
            }
        }
All Usage Examples Of SQLDiagRunner.Runner::ExecuteQueries