public List <string> GetStatements(string script)
        {
            var batches = GetBatches(script);

            var parser    = GetParser();
            var generator = GetGenerator();
            var visitor   = new DdlVisitor(generator);

            visitor.Statements = new List <string>();

            foreach (var batch in batches)
            {
                IList <ParseError> errors;

                visitor.PrepareForNewBatch(batch);
                var fragment = parser.Parse(new StringReader(batch), out errors);
                if (errors.Count > 0)
                {
                    Console.WriteLine("errors");
                }
                fragment.Accept(visitor);
            }
            var returnableList = new List <string>();

            foreach (var statement in visitor.Statements)
            {
                if (statement.StartsWith("alter tab", StringComparison.OrdinalIgnoreCase))
                {
                    returnableList.Add(statement);
                    continue;
                }

                if (statement.StartsWith("create", StringComparison.OrdinalIgnoreCase))
                {
                    returnableList.Add(statement);
                    continue;
                }

                if (statement.StartsWith("alter", StringComparison.OrdinalIgnoreCase))
                {
                    returnableList.Add("CREATE" + statement.Substring(5));
                }
            }
            return(returnableList);
        }
Exemple #2
0
        public List<string> GetStatements(string script)
        {
            var batches = GetBatches(script);

            var parser = GetParser();
            var generator = GetGenerator();
            var visitor = new DdlVisitor(generator);
            visitor.Statements = new List<string>();

            foreach (var batch in batches)
            {
                IList<ParseError> errors;

                visitor.PrepareForNewBatch(batch);
                var fragment = parser.Parse(new StringReader(batch), out errors);
                if (errors.Count > 0)
                {
                    Console.WriteLine("errors");
                }
                fragment.Accept(visitor);
            }
            var returnableList = new List<string>();

            foreach (var statement in visitor.Statements)
            {
                if (statement.StartsWith("alter tab", StringComparison.OrdinalIgnoreCase))
                {
                    returnableList.Add(statement);
                    continue;
                }

                if (statement.StartsWith("create", StringComparison.OrdinalIgnoreCase))
                {
                    returnableList.Add(statement);
                    continue;
                }

                if (statement.StartsWith("alter", StringComparison.OrdinalIgnoreCase))
                {
                    returnableList.Add("CREATE" + statement.Substring(5));
                }
            }
            return returnableList;
        }