Пример #1
0
        public SqlType Execute()
        {
            string identifier = GetIdentifier();
            SqlType result;
            if ( identifier == Constants.As )
            {
                result = null;
            }
            else
            {
                result = new SqlType( identifier );

                if ( !Tokenizer.IsNextToken( Constants.OpenBracket ) )
                    return result;

                using ( Tokenizer.ExpectBrackets() )
                {
                    string token = CurrentToken;
                    ReadNextToken();
                    result.Max = ( String.Compare( token, "MAX", true ) == 0 );

                    if ( !result.Max )
                    {
                        result.Length = Int32.Parse( token );

                        if ( Tokenizer.TokenEquals( Constants.Comma ) )
                        {
                            result.Scale = Int32.Parse( CurrentToken );
                            ReadNextToken();
                        }
                    }
                }
            }
            return result;
        }
Пример #2
0
        public SqlType Execute()
        {
            string identifier = GetIdentifier();
            if (String.Equals(identifier, Constants.As, StringComparison.InvariantCultureIgnoreCase))
                return null;

            var result = new SqlType(identifier);

            if (Tokenizer.IsNextToken(Constants.Precision))
            {
                result.Name = String.Format("{0} {1}", result.Name, Constants.Precision);
                ReadNextToken();
            }

            if (!Tokenizer.IsNextToken(Constants.OpenBracket))
                return result;

            using (Tokenizer.ExpectBrackets())
            {
                string token = CurrentToken;
                ReadNextToken();
                result.Max = (String.Compare(token, Constants.Max, true) == 0);

                if (!result.Max)
                {
                    result.Length = Int32.Parse(token);

                    if (Tokenizer.TokenEquals(Constants.Comma))
                    {
                        result.Scale = Int32.Parse(CurrentToken);
                        ReadNextToken();
                    }
                }
            }

            return result;
        }
Пример #3
0
 public CastExpression( Expression parent, SqlType outputType)
     : this(parent)
 {
     OutputType = outputType;
 }