public override void ExecuteCommand(CancellationToken token) { var file = DialogManager.ShowSelectFileDialog(); if (file == null) { return; } var ok = new Action <string>((tableName) => { ExcelImporter importer = new ExcelImporter(); DDLManager ddlManager = new DDLManager(); var meta = importer.GetMetaData(file.FullName); ddlManager.CreateTable(tableName, meta); importer.ImportToTable(file.FullName, tableName, meta); ShellManager.AppendToEndOfSelection("SELECT * FROM " + tableName); ShellManager.AppendToEndOfSelection("--DROP TABLE " + tableName); }); DialogManager.GetDialogInputFromUser("Choose target table name (This table will be created)", "ExcelImport", ok); }
public override void ExecuteCommand(CancellationToken token) { string selectedText = ShellManager.GetSelectedText(); var sb = new StringBuilder(); using (var ds = new DataSet()) { QueryManager.Run(ConnectionManager.GetConnectionStringForCurrentWindow(), token, (queryManager) => { queryManager.Fill(string.Format("SET ROWCOUNT 1; {0}", selectedText), ds); }); sb.AppendTempTablesFor(ds); if (ds.Tables.Count == 1) { sb.Append("INSERT INTO #Temp1"); ShellManager.AddTextToTopOfSelection(sb.ToString()); sb.Clear(); sb.AppendColumnNameList(ds.Tables[0]); ShellManager.AppendToEndOfSelection( string.Format("{0}SELECT{0}{1}{0}FROM #Temp1", Environment.NewLine, sb.ToString()) ); } else { ShellManager.AppendToEndOfSelection(sb.ToString()); } } }
public override void ExecuteCommand(CancellationToken token) { var selectedText = ShellManager.GetSelectedText(); var sb = new StringBuilder(); DialogManager.GetDialogInputFromUser("Enter Row Template", "Col1 = {0}, Col2 = '{1}'", template => { using (var ds = new DataSet()) { QueryManager.Run(ConnectionManager.GetConnectionStringForCurrentWindow(), token, (queryManager) => { queryManager.Fill(selectedText, ds); }); var columnsRequested = template.Count(c => c == '{'); foreach (DataTable table in ds.Tables) { foreach (DataRow row in table.Rows) { if (row.ItemArray.Length < columnsRequested) { sb.AppendLine("-- the result set contain fewer columns than specified in the template"); break; } var data = row.ItemArray.Take(columnsRequested).ToArray(); sb.AppendLine(string.Format(template, data)); } } } }); ShellManager.AppendToEndOfSelection(sb.ToString()); }
public override void ExecuteCommand(CancellationToken token) { string selectedText = ShellManager.GetSelectedText(); var connectionString = ConnectionManager.GetConnectionStringForCurrentWindow(); var sb = GetComparisonResultFrom(ref token, selectedText, connectionString); ShellManager.AppendToEndOfSelection(sb.ToString()); }
public override void ExecuteCommand(CancellationToken token) { Action <string> ok = new Action <string>(result => { long numRows = 0; if (!long.TryParse(result, out numRows)) { ShellManager.ShowMessageBox("Please input a valid number"); return; } string selectedText = ShellManager.GetSelectedText(); DataSet ds = new DataSet(); string query = string.Format(@" set rowcount {0}; {1}; set rowcount 0;", numRows, selectedText); QueryManager.Run(ConnectionManager.GetConnectionStringForCurrentWindow(), token, (queryManager) => { queryManager.Fill(query, ds); }); if (ds.Tables.Count > 0) { if (ds.Tables[0].Rows.Count > 50000) { //ShellManager.ShowMessageBox("The result of this query is too large to render in SSMS. Please select a location for the script to be saved."); //var file = DialogManager.ShowSaveFileDialog("SQL files (*.sql)|*.sql|All files (*.*)|*.*"); var filename = Path.GetTempFileName(); using (var writer = File.CreateText(filename)) { WriteInsertFor(ds.Tables[0], writer); writer.Flush(); } ShellManager.OpenFile(filename, true); } else { string output = GenerateInsertFor(ds.Tables[0]); ShellManager.AppendToEndOfSelection(output); } } else { ShellManager.ShowMessageBox("Query did not produce any result"); } }); DialogManager.GetDialogInputFromUser("How many rows to select? (0=max)", "0", ok, cancelCallback); }
public override void ExecuteCommand(System.Threading.CancellationToken token) { var selectedText = ShellManager.GetSelectedText(); var options = new PeterHenell.SSMS.Plugins.Utils.TsqltManager.MockOptionsDictionary(); options.EachColumnInSelectOnNewRow = false; options.EachColumnInValuesOnNewRow = false; var connectionString = ConnectionManager.GetConnectionStringForCurrentWindow(); var meta = ObjectMetadata.FromQualifiedString(selectedText); var service = new ObjectDependencyService(); var dependencies = service.GetDependencies(meta, connectionString, token); var superMockingString = TsqltManager.MockAllDependencies(token, options, connectionString, dependencies); ShellManager.AppendToEndOfSelection(superMockingString); }
public override void ExecuteCommand(CancellationToken token) { this.tableMetaAccess = new ObjectMetadataAccess(ConnectionManager.GetConnectionStringForCurrentWindow()); Action <string> okAction = new Action <string>(userInput => { int numRows = 0; ParseParam(userInput, out numRows); var meta = GetTableMetaFromSelectedText(); DataTable table = tableMetaAccess.GetTableSchema(meta, token); DataGenerator generator = new DataGenerator(); generator.Fill(table, numRows); string output = GenerateInsertFor(table, meta.ToFullString()); ShellManager.AppendToEndOfSelection(output); }); DialogManager.GetDialogInputFromUser("How many rows to generate? (0-1000)", "10", okAction, cancelCallback); }
public override void ExecuteCommand(CancellationToken token) { var options = new MockOptionsDictionary(); var ok = new Action <string, MockOptionsDictionary>((result, checkedOptions) => { int numRows = 0; if (!int.TryParse(result, out numRows)) { ShellManager.ShowMessageBox("Please input a valid number"); return; } else { if (numRows <= 0) { numRows = 0; } else if (numRows > 1000) { numRows = 1000; } } string selectedText = ShellManager.GetSelectedText(); var sb = new StringBuilder(); using (var ds = new DataSet()) { QueryManager.Run(ConnectionManager.GetConnectionStringForCurrentWindow(), token, (queryManager) => { queryManager.Fill(string.Format("SET ROWCOUNT {0}; {1}", numRows, selectedText), ds); }); if (ds.Tables.Count == 1) { sb.AppendDropTempTableIfExists("#Actual"); sb.AppendLine(); sb.AppendDropTempTableIfExists("#Expected"); sb.AppendLine(); sb.AppendTempTablesFor(ds.Tables[0], "#Actual"); sb.Append("INSERT INTO #Actual"); ShellManager.AddTextToTopOfSelection(sb.ToString()); sb.Clear(); sb.AppendColumnNameList(ds.Tables[0]); ShellManager.AppendToEndOfSelection( string.Format("{0}SELECT {1}INTO #Expected{0}FROM #Actual{0}WHERE 1=0;{0}", Environment.NewLine, sb.ToString()) ); ShellManager.AppendToEndOfSelection( TsqltManager.GenerateInsertFor(ds.Tables[0], ObjectMetadata.FromQualifiedString("#Expected"), false, false)); } else { return; } } //var meta = ObjectMetadata.FromQualifiedString(selectedText); //ObjectMetadataAccess da = new ObjectMetadataAccess(ConnectionManager.GetConnectionStringForCurrentWindow()); //var table = da.SelectTopNFrom(meta, numRows); //StringBuilder sb = new StringBuilder(); //sb.Append(TsqltManager.GetFakeTableStatement(selectedText)); //sb.AppendLine(); //sb.Append(TsqltManager.GenerateInsertFor(table, meta, options.EachColumnInSelectOnNewRow, options.EachColumnInValuesOnNewRow)); //shellManager.ReplaceSelectionWith(sb.ToString()); }); var diagManager = new DialogManager.InputWithCheckboxesDialogManager <MockOptionsDictionary>(); diagManager.Show("How many rows to select? (0=max)", "1", options, ok, cancelCallback); }