/// <summary> /// Преобразует в SQL строку для использвания в РСУБД /// </summary> /// <param name="builder">Параметры для построения</param> /// <returns></returns> public override string ToSql(ExpressionSqlBuilder builder) { throw new Exception("Can not convert to SQL"); }
public abstract string ToSql(ExpressionSqlBuilder builder);
public override string ToSql(ExpressionSqlBuilder builder) { return(Expression.ToSql(builder)); }
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"); } }
public override string ToSql(ExpressionSqlBuilder builder) { return("WHEN " + When.ToSql(builder) + " THEN " + Then.ToSql(builder)); }
public override string ToSql(ExpressionSqlBuilder builder) { return(" " + SelectOperationToString(Operation) + " " + Select.ToSql(builder)); }