/// <summary> /// Executes the script typed by the user and create a tab page for each statement that returns a resultset from the database otherwise write statement execution info to the output window /// </summary> /// <param name="script">Script to execute</param> private void ExecuteScript(string script) { if (string.IsNullOrEmpty(script)) { return; } // Get elapsed time for BaseShell results in case an exception is thrown Stopwatch sw = new Stopwatch(); try { switch (_sessionOption) { case SessionOption.UseSameSession: if (_mySqlXProxy == null) { _mySqlXProxy = new MySqlXProxy(Connection.GetXConnectionString(Package.SelectedMySqlConnectionName), true, ScriptLanguageType); } break; case SessionOption.UseNewSession: _mySqlXProxy = new MySqlXProxy(Connection.GetXConnectionString(Package.SelectedMySqlConnectionName), false, ScriptLanguageType); break; } sw = Stopwatch.StartNew(); switch (_executionModeOption) { case ExecutionModeOption.BatchMode: ExecuteBatchScript(script); break; case ExecutionModeOption.ConsoleMode: ExecuteConsoleScript(script); break; } sw.Stop(); } catch (Exception ex) { sw.Stop(); WriteToMySqlOutput(script, ex.Message, string.Format("{0} sec", TimeSpan.FromMilliseconds(sw.ElapsedMilliseconds).TotalSeconds), MessageType.Error); } }
/// <summary> /// Event fired when the Session Option is changed /// </summary> /// <param name="sender">Sender that calls the event (item clicked)</param> /// <param name="e">Event arguments</param> private void PreserveVariablesToolStripMenuItem_Click(object sender, EventArgs e) { var clickedItem = sender as ToolStripMenuItem; if (clickedItem == null) { return; } _sessionOption = clickedItem.Checked ? SessionOption.UseSameSession : SessionOption.UseNewSession; if (_mySqlXProxy != null) { _mySqlXProxy.CleanConnection(); _mySqlXProxy = null; CodeEditor.Dock = ResultsTabControl.Visible ? DockStyle.Top : DockStyle.Fill; } }