Ejemplo n.º 1
0
        private IParamBuilder InternalCreateLikeSql(TkDbContext context, IFieldInfo fieldInfo, string paramName, string fieldValue)
        {
            fIsEscape = fieldValue.IndexOfAny(WIDE_CHARS) != -1;
            string fieldName  = context.EscapeName(fieldInfo.FieldName);
            string fieldName1 = paramName + "1";
            string fieldName2 = paramName + "2";

            if (fIsEscape)
            {
                fSql = string.Format(ObjectUtil.SysCulture,
                                     "(({0} LIKE {1} ESCAPE '\\') OR ({0} LIKE {2} ESCAPE '\\'))", fieldName,
                                     context.GetSqlParamName(fieldName1), context.GetSqlParamName(fieldName2));
                fieldValue = StringUtil.EscapeSqlString(fieldValue);
            }
            else
            {
                fSql = string.Format(ObjectUtil.SysCulture,
                                     "(({0} LIKE {1}) OR ({0} LIKE {2}))", fieldName,
                                     context.GetSqlParamName(fieldName1), context.GetSqlParamName(fieldName2));
            }

            fParams.Add(fieldName1, fieldInfo.DataType, fieldValue + "%");
            fParams.Add(fieldName2, fieldInfo.DataType, "%" + fieldValue + "%");
            return(this);
        }
Ejemplo n.º 2
0
        public static IParamBuilder CreateParamBuilder(string sql, IFieldInfo fieldInfo, object fieldValue)
        {
            DbParameterList paramList = new DbParameterList();

            paramList.Add(fieldInfo, fieldValue);
            return(CreateParamBuilder(sql, paramList));
        }
Ejemplo n.º 3
0
        public static IParamBuilder CreateParamBuilder(string sql, string fieldName,
                                                       TkDataType dataType, object fieldValue)
        {
            TkDebug.AssertArgumentNullOrEmpty(fieldName, "fieldName", null);

            DbParameterList paramList = new DbParameterList();

            paramList.Add(fieldName, dataType, fieldValue);
            return(CreateParamBuilder(sql, paramList));
        }
Ejemplo n.º 4
0
        public void SqlDelete(IParamBuilder builder)
        {
            TkDebug.AssertArgumentNull(builder, "builder", this);

            if (IsFakeDelete)
            {
                var    field = GetFieldInfo(FakeDelete.FieldName);
                string sql   = string.Format(ObjectUtil.SysCulture, "UPDATE {0} SET {1} = {2}{3}",
                                             TableName, field.FieldName, Context.GetSqlParamName(field.FieldName),
                                             string.IsNullOrEmpty(builder.Sql) ? string.Empty : " WHERE " + builder.Sql);
                DbParameterList paramList = new DbParameterList();
                paramList.Add(field, FakeDelete.Value);
                paramList.Add(builder.Parameters);
                DbUtil.ExecuteNonQuery(sql, Context, paramList);
            }
            else
            {
                string sql = "DELETE FROM " + TableName;
                DbUtil.ExecuteNonQuery(sql, Context, builder);
            }
        }
Ejemplo n.º 5
0
        public void Add(IParamBuilder builder)
        {
            if (builder == null)
            {
                return;
            }
            string sql = builder.Sql;

            TkDebug.AssertNotNullOrEmpty(sql,
                                         "传入参数builder生成的Sql为空,这是不允许的", builder);

            AddSql(sql);
            DbParameterList parameters = builder.Parameters;

            TkDebug.AssertNotNull(parameters,
                                  "传入参数builder调用GetParameters返回为空,这是不允许的", builder);

            fParams.Add(parameters);
        }