private void ShowPlanButton_Click(object sender, RoutedEventArgs e) { if (string.IsNullOrWhiteSpace(SqlText)) { return; } DataConnectionHelper.LogUsage("EditorShowPlan"); try { using (var repository = RepositoryHelper.CreateRepository(DatabaseInfo)) { string sql = GetSqlFromSqlEditorTextBox(); string showPlan = repository.ParseSql(sql); try { TryLaunchSqlplan(showPlan, true); } catch (Exception ex) { DataConnectionHelper.SendError(ex, DatabaseType.SQLCE35); } } } catch (Exception sqlException) { ParseSqlErrorToResultsBox(RepositoryHelper.CreateEngineHelper(DatabaseInfo.DatabaseType).FormatError(sqlException)); } }
private async void ExecuteSqlScriptInEditor() { try { StartQuerying(); using (var repository = Helpers.RepositoryHelper.CreateRepository(DatabaseInfo)) { var sql = GetSqlFromSqlEditorTextBox(); var schemaChanged = false; if (sql.Length == 0) { return; } var sbSql = new StringBuilder(sql); sbSql = sbSql.Replace("\r", " \r"); sbSql = sbSql.Replace("GO \r", "GO\r"); sql = sbSql.Replace("GO \r", "GO\r").ToString(); var sw = new Stopwatch(); sw.Start(); var dataset = await Task.Run(() // ReSharper disable once AccessToDisposedClosure => repository.ExecuteSql(sql, out schemaChanged, _ignoreDdlErrors)); sw.Stop(); FormatTime(sw); if (dataset == null) { return; } ParseDataSetResultsToResultsBox(dataset); if (!schemaChanged) { return; } ExplorerControl?.RefreshTables(DatabaseInfo); } } catch (Exception sqlException) { ParseSqlErrorToResultsBox( RepositoryHelper.CreateEngineHelper(DatabaseInfo.DatabaseType).FormatError(sqlException)); } finally { StopQuerying(); } }
private async void ExecuteWithPlanButton_Click(object sender, RoutedEventArgs e) { DataConnectionHelper.LogUsage("EditorExecuteWithPlan"); if (string.IsNullOrWhiteSpace(SqlText)) { return; } try { StartQuerying(); using (var repository = Helpers.RepositoryHelper.CreateRepository(DatabaseInfo)) { var sql = GetSqlFromSqlEditorTextBox(); string showPlan = string.Empty; Stopwatch sw = new Stopwatch(); sw.Start(); var dataset = await Task.Run(() // ReSharper disable once AccessToDisposedClosure => repository.ExecuteSql(sql, out showPlan)); sw.Stop(); FormatTime(sw); try { if (dataset != null) { ParseDataSetResultsToResultsBox(dataset); } TryLaunchSqlplan(showPlan, false); } catch (Exception ex) { DataConnectionHelper.SendError(ex, DatabaseType.SQLCE35); } } } catch (Exception ex) { ParseSqlErrorToResultsBox( RepositoryHelper.CreateEngineHelper(DatabaseInfo.DatabaseType).FormatError(ex)); } finally { StopQuerying(); } }
private bool TestConnection(bool showMessage) { try { if (_createDb) { if (!System.IO.File.Exists(dataSourceTextBox.Text)) { var engineHelper = RepositoryHelper.CreateEngineHelper(DbType); engineHelper.CreateDatabase(_connectionString); } } using (Helpers.RepositoryHelper.CreateRepository(new DatabaseInfo { ConnectionString = _connectionString, DatabaseType = DbType })) { if (showMessage) { EnvDteHelper.ShowMessage("Connection OK!"); } else { DialogResult = true; } } return(true); } catch (Exception ex) { if (ex.Message.Contains("Please upgrade using SqlCeEngine.Upgrade() method") && DbType == DatabaseType.SQLCE40) { if (EnvDteHelper.ShowMessageBox("This database file is from an earlier version,\n\rwould you like to Upgrade it?\n\r(A copy of the original file will be named .bak)" , Microsoft.VisualStudio.Shell.Interop.OLEMSGBUTTON.OLEMSGBUTTON_YESNO , Microsoft.VisualStudio.Shell.Interop.OLEMSGDEFBUTTON.OLEMSGDEFBUTTON_SECOND , Microsoft.VisualStudio.Shell.Interop.OLEMSGICON.OLEMSGICON_WARNING) == System.Windows.Forms.DialogResult.Yes) { var bakFile = dataSourceTextBox.Text + ".bak"; var go = true; try { if (System.IO.File.Exists(bakFile)) { if (EnvDteHelper.ShowMessageBox(string.Format("{0} already exists, do you wish to overwrite it?", bakFile) , Microsoft.VisualStudio.Shell.Interop.OLEMSGBUTTON.OLEMSGBUTTON_YESNO , Microsoft.VisualStudio.Shell.Interop.OLEMSGDEFBUTTON.OLEMSGDEFBUTTON_SECOND , Microsoft.VisualStudio.Shell.Interop.OLEMSGICON.OLEMSGICON_WARNING) == System.Windows.Forms.DialogResult.Yes) { System.IO.File.Delete(bakFile); } else { go = false; } } if (go) { System.IO.File.Copy(dataSourceTextBox.Text, dataSourceTextBox.Text + ".bak"); var helper = new SqlCeScripting.SqlCeHelper4(); helper.UpgradeTo40(_connectionString); DialogResult = true; } } catch (Exception ex2) { DataConnectionHelper.SendError(ex2, DbType, false); return(false); } } } else { DataConnectionHelper.SendError(ex, DbType, false); return(false); } } return(true); }