コード例 #1
0
 /// <summary>
 /// Преобразует в SQL строку для использвания в РСУБД
 /// </summary>
 /// <param name="builder">Параметры для построения</param>
 /// <returns></returns>
 public override string ToSql(ExpressionSqlBuilder builder)
 {
     throw new Exception("Can not convert to SQL");
 }
コード例 #2
0
ファイル: SqlToken.cs プロジェクト: mamont80/everewhereSQL
 public abstract string ToSql(ExpressionSqlBuilder builder);
コード例 #3
0
 public override string ToSql(ExpressionSqlBuilder builder)
 {
     return(Expression.ToSql(builder));
 }
コード例 #4
0
        public string ToSql(ExpressionSqlBuilder builder)
        {
            switch (Type)
            {
            case DbColumnType.Unknow:
                return("UNKNOW");

            case DbColumnType.Char:
                if (builder.DbType == DriverType.SqlServer)
                {
                    return("NCHAR(" + MaxTextLength.ToString() + ")");
                }
                else
                {
                    return("CHAR(" + MaxTextLength.ToString() + ")");
                }

            case DbColumnType.VarChar:
                if (builder.DbType == DriverType.SqlServer)
                {
                    return("NVARCHAR(" + MaxTextLength.ToString() + ")");
                }
                else
                {
                    return("VARCHAR(" + MaxTextLength.ToString() + ")");
                }

            case DbColumnType.Text:
                if (builder.DbType == DriverType.SqlServer)
                {
                    return("NVARCHAR(MAX)");
                }
                else
                {
                    return("text");
                }

            case DbColumnType.Byte:
            case DbColumnType.SmallInt:
                if (builder.DbType == DriverType.SqlServer)
                {
                    return("smallint");
                }
                else
                {
                    return("int8");
                }

            case DbColumnType.Integer:
                return("int");

            case DbColumnType.BigInt:
                return("bigint");

            case DbColumnType.Real:
                return("real");

            case DbColumnType.Double:
                if (builder.DbType == DriverType.PostgreSQL)
                {
                    return("double precision");
                }
                return("float");

            case DbColumnType.Money:
                return("money");

            case DbColumnType.Blob:
                if (builder.DbType == DriverType.SqlServer)
                {
                    return("varbinary(max)");
                }
                else
                {
                    return("bytea");
                }

            case DbColumnType.Date:
                return("date");

            case DbColumnType.DateTime:
                if (builder.DbType == DriverType.SqlServer)
                {
                    return("datetime");
                }
                else
                {
                    return("timestamp without time zone");
                }

            case DbColumnType.Time:
                if (builder.DbType == DriverType.SqlServer)
                {
                    return("time");
                }
                else
                {
                    return("time without time zone");
                }

            case DbColumnType.Boolean:
                if (builder.DbType == DriverType.SqlServer)
                {
                    return("bit");
                }
                else
                {
                    return("boolean");
                }

            case DbColumnType.Geometry:
                return("geometry");

            case DbColumnType.Geography:
                return("geometry");

            case DbColumnType.Numeric:
                string s = "numeric";
                if (Precision > 0)
                {
                    s += "(" + Precision.ToString();
                    if (Scale > 0)
                    {
                        s += ", " + Scale.ToString();
                    }
                    s += ")";
                }
                return(s);

            case DbColumnType.DateTimeWithTimeZone:
                if (builder.DbType == DriverType.SqlServer)
                {
                    return("DATETIME");
                }
                else
                {
                    return("timestamp with time zone");
                }

            case DbColumnType.TimeWithTimeZome:
                if (builder.DbType == DriverType.SqlServer)
                {
                    return("time");
                }
                else
                {
                    return("time with time zone");
                }

            default:
                throw new Exception("Unknow data type");
            }
        }
コード例 #5
0
ファイル: CaseExpr.cs プロジェクト: mamont80/everewhereSQL
 public override string ToSql(ExpressionSqlBuilder builder)
 {
     return("WHEN " + When.ToSql(builder) + " THEN " + Then.ToSql(builder));
 }
コード例 #6
0
 public override string ToSql(ExpressionSqlBuilder builder)
 {
     return(" " + SelectOperationToString(Operation) + " " + Select.ToSql(builder));
 }