Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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());
                }
            }
        }
Exemplo n.º 3
0
        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());
        }
Exemplo n.º 4
0
        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());
        }
Exemplo n.º 5
0
        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);
        }
Exemplo n.º 6
0
        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);
        }
Exemplo n.º 7
0
        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);
        }
Exemplo n.º 8
0
        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);
        }