Beispiel #1
0
        private static string ScriptFragment(SqlScriptGenerator sg, TSqlFragment fragment)
        {
            string resultString;

            sg.GenerateScript(fragment, out resultString);
            return(resultString);
        }
 public SqlFormatter()
 {
     this.parser    = new TSql150Parser(false);
     this.generator = new Sql150ScriptGenerator(new SqlScriptGeneratorOptions
     {
         KeywordCasing              = KeywordCasing.Lowercase,
         IncludeSemicolons          = true,
         NewLineBeforeFromClause    = true,
         NewLineBeforeOrderByClause = true,
         NewLineBeforeWhereClause   = true,
         AlignClauseBodies          = false,
         IndentationSize            = 2
     });
 }
 public TSqlScriptWriter(TextWriter writer)
 {
     _writer    = new IndentedTextWriter(writer);
     _generator = new Sql150ScriptGenerator();
     _generator.Options.AlignClauseBodies  = true;
     _generator.Options.AsKeywordOnOwnLine = true;
     _generator.Options.KeywordCasing      = KeywordCasing.Uppercase;
     _generator.Options.IncludeSemicolons  = true;
     _generator.Options.IndentationSize    = 4;
     _generator.Options.SqlVersion         = SqlVersion.Sql150;
     _generator.Options.NewLineBeforeOpenParenthesisInMultilineList = true;
     _generator.Options.MultilineSelectElementsList = true;
     _generator.Options.MultilineInsertSourcesList  = true;
     _generator.Options.MultilineInsertTargetsList  = true;
 }
Beispiel #4
0
        private static SqlScriptGenerator GetGenerator(GenerationOptions options)
        {
            SqlScriptGenerator generator = null;

            switch (options.SqlVersion)
            {
            case SqlVersion.Sql80:
                generator = new Sql80ScriptGenerator();
                break;

            case SqlVersion.Sql100:
                generator = new Sql100ScriptGenerator();
                break;

            case SqlVersion.Sql110:
                generator = new Sql110ScriptGenerator();
                break;

            case SqlVersion.Sql120:
                generator = new Sql120ScriptGenerator();
                break;

            case SqlVersion.Sql130:
                generator = new Sql130ScriptGenerator();
                break;

            case SqlVersion.Sql140:
                generator = new Sql140ScriptGenerator();
                break;

            case SqlVersion.Sql150:
                generator = new Sql150ScriptGenerator();
                break;

            default:
                generator = new Sql90ScriptGenerator();
                break;
            }

            generator.Options.Apply(options);

            return(generator);
        }
Beispiel #5
0
        /// <summary>
        /// This method will parameterize the given SqlCommand.
        /// Any single literal on the RHS of a declare statement will be parameterized
        /// Any other literals will be ignored
        /// </summary>
        /// <param name="commandToParameterize">Command that will need to be parameterized</param>
        public static void Parameterize(this DbCommand commandToParameterize)
        {
            TSqlFragment     rootFragment = GetAbstractSyntaxTree(commandToParameterize);
            TsqlMultiVisitor multiVisitor = new TsqlMultiVisitor(isCodeSenseRequest: false); // Use the vistor pattern to examine the parse tree

            rootFragment.AcceptChildren(multiVisitor);                                       // Now walk the tree

            //reformat and validate the transformed command
            SqlScriptGenerator scriptGenerator = GetScriptGenerator();

            scriptGenerator.GenerateScript(rootFragment, out string formattedSQL);

            if (!string.IsNullOrEmpty(formattedSQL))
            {
                commandToParameterize.CommandText = formattedSQL;
            }

            commandToParameterize.Parameters.AddRange(multiVisitor.Parameters.ToArray());

            multiVisitor.Reset();
        }
Beispiel #6
0
 public DdlVisitor(SqlScriptGenerator generator)
 {
     _generator = generator;
 }
Beispiel #7
0
 public DdlVisitor(SqlScriptGenerator generator)
 {
     _generator = generator;
 }
Beispiel #8
0
 public MsSqlScriptParser(TSqlParser parser, SqlScriptGenerator sqlScriptGenerator)
 {
     _parser             = parser;
     _sqlScriptGenerator = sqlScriptGenerator;
 }