Exemple #1
0
        protected string GenSaveSql(T data, Expression <Func <T, bool> > exp, DbCommand cmd, IDbProperty idfn)
        {
            var sql      = $"UPDATE {this.Sql.Tablename(true)} SET ";
            var hasField = false;

            //var idfn = this.GetIdField();
            foreach (var prop in this.Sql.AllowedProps.Values)
            {
                if (hasField)
                {
                    sql += " , ";
                }
                else
                {
                    hasField = true;
                }
                if (prop.Field.Name == idfn.Field.Name)
                {
                    continue;
                }
                sql += this.Sql.DbTrait.SqlFieldname(prop.Field.Name) + "=";
                switch (this.Sql.DbTrait.ParametricKind)
                {
                case SqlParametricKinds.At:
                    sql += "@" + prop.Field.Name; break;

                case SqlParametricKinds.Question:
                    sql += "?"; break;

                default:
                    sql += SQL <T> .SqlValue(prop.GetValue(data), prop.Field.Nullable, prop.DefaultValue);

                    break;
                }
            }
            sql += " WHERE " + this.Sql.DbTrait.SqlFieldname(idfn.Field.Name) + "=";
            switch (this.Sql.DbTrait.ParametricKind)
            {
            case SqlParametricKinds.At:
                sql += "@" + idfn; break;

            case SqlParametricKinds.Question:
                sql += "?"; break;

            default:
                sql += SQL <T> .SqlValue(idfn.GetValue(data), false, idfn.DefaultValue);

                break;
            }

            if (exp != null)
            {
                var where = base.SqlWhere(exp, cmd, new WhereOpts()
                {
                });
                sql += " AND " + where;
            }

            return(sql);
        }
Exemple #2
0
        protected string GenUpdateSql(T data)
        {
            var sql      = $"UPDATE {this.Sql.Tablename(true)} SET ";
            var hasField = false;

            foreach (var prop in this.Sql.AllowedProps.Values)
            {
                if (hasField)
                {
                    sql += " , ";
                }
                else
                {
                    hasField = true;
                }
                sql += this.Sql.DbTrait.SqlFieldname(prop.Field.Name) + "=";
                switch (this.Sql.DbTrait.ParametricKind)
                {
                case SqlParametricKinds.At:
                    sql += "@" + prop.Field.Name; break;

                case SqlParametricKinds.Question:
                    sql += "?"; break;

                default:
                    sql += SQL <T> .SqlValue(prop.GetValue(data), prop.Field.Nullable, prop.DefaultValue);

                    break;
                }
            }
            return(sql);
        }
Exemple #3
0
        DbCommand BuildCommand(object id, DbConnection conn)
        {
            var cmd = conn.CreateCommand();

            if (this.Sql.DbTrait.ParametricKind == SqlParametricKinds.Value)
            {
                cmd.CommandText = this.SelectSql + $"'{SQL<T>.SqlValue(id,false)}'";
            }

            else
            {
                cmd.CommandText = this.SelectSql;
                var par = cmd.CreateParameter();
                par.ParameterName = "@p0";
                par.DbType        = this.Primary.Field.DbType;
                par.Value         = id;
                cmd.Parameters.Add(par);
            }
            cmd.CommandType = System.Data.CommandType.Text;
            cmd.Connection  = conn;
            return(cmd);
        }
Exemple #4
0
        DbCommand BuildCommand(object id, Expression <Func <T, bool> > criteria, DbConnection conn)
        {
            var cmd = conn.CreateCommand();

            if (this.Sql.DbTrait.ParametricKind == SqlParametricKinds.Value)
            {
                cmd.CommandText = this.SelectSql + $"'{SQL<T>.SqlValue(id, false)}'";
                if (criteria != null)
                {
                    var where = base.SqlWhere(criteria, cmd, new WhereOpts()
                    {
                        ValueEmbeded = true
                    });
                    cmd.CommandText += " AND " + where;
                }
            }

            else
            {
                cmd.CommandText = this.SelectSql;
                if (criteria != null)
                {
                    var where = base.SqlWhere(criteria, cmd, new WhereOpts()
                    {
                        ValueEmbeded = true
                    });
                    cmd.CommandText += " AND " + where;
                }
                var par = cmd.CreateParameter();
                par.ParameterName = "@p_Delete_IdField_PAR0";
                par.DbType        = this.Sql.DbClass.PrimaryProperty.Field.DbType;
                par.Value         = id;
                cmd.Parameters.Add(par);
            }

            cmd.CommandType = System.Data.CommandType.Text;
            cmd.Connection  = conn;
            return(cmd);
        }
Exemple #5
0
        string GenSql(object entity)
        {
            var sql_fields = "";
            var sql_values = "";

            foreach (var pair in this.Sql.AllowedProps)
            {
                var prop  = pair.Value;
                var fname = this.Sql.DbTrait.SqlFieldname(prop.Field.Name);

                if (sql_fields != string.Empty)
                {
                    sql_fields += ",";
                }
                if (sql_values != string.Empty)
                {
                    sql_values += ",";
                }
                sql_fields += fname;
                switch (this.Sql.DbTrait.ParametricKind)
                {
                case SqlParametricKinds.At:
                    sql_values += "@" + fname; break;

                case SqlParametricKinds.Question:
                    sql_values += "?"; break;

                default:
                    var nullable  = prop.Nullable;
                    var fieldAttr = prop.GetAttribute <DbFieldAttribute>();
                    if (fieldAttr != null && fieldAttr.IsNullable)
                    {
                        nullable = true;
                    }

                    var hasValue = prop.HasValue(entity);
                    if (!hasValue)
                    {
                        if (nullable)
                        {
                            sql_values += "NULL";
                        }
                        else
                        {
                            sql_values += SQL <T> .SqlValue(prop.DefaultValue, false, prop.DefaultValue) ?? "''";
                        }
                    }
                    else
                    {
                        var val = prop.EnsureValue(entity);
                        if (val == null)
                        {
                            sql_values += "''";
                        }
                        sql_values += SQL <T> .SqlValue(val.ToString());
                    }
                    break;
                }
            }

            return("(" + sql_fields + ") VALUES(" + sql_values + ")");
        }