/// <summary> /// Коструктор /// </summary> /// <param name="owner"></param> /// <param name="id"></param> /// <param name="name"></param> /// <param name="type"></param> /// <param name="header"></param> /// <param name="pkIndex"></param> /// <param name="fieldEncoding">Кодировка для CLOB полей</param> public Field(SQLCursor owner, Int32 id, String name, JSFieldType type, String header, String pkIndex, FieldEncoding fieldEncoding = FieldEncoding.UTF8) { this.FieldID = id; this._owner = owner; this.FieldName = name.ToUpper(); this.DataType = type; this.Encoding = fieldEncoding; this.FieldCaption = header; this.FieldPkIndex = pkIndex; }
/// <summary> /// Преобразует тип FTypeMap в тип System.Type. /// </summary> /// <param name="type">Имя типа.</param> /// <returns>Объект, соответствующий входному имени типа.</returns> /// <exception cref="ArgumentException">Возбуждается, если тип не может быть преобразован.</exception> public static Type ConvertFTypeToType(JSFieldType type) { return enumHelper.GetAttributeByValue<MappingAttribute>(type).ToNetType; }
private String detectSQLFormat(Boolean hasNot, JSFilterComparisionOperatorType operation, JSFieldType jsFieldType) { String rslt = null; switch (jsFieldType) { case JSFieldType.String: case JSFieldType.Clob: { switch (operation) { case JSFilterComparisionOperatorType.Eq: rslt = "UPPER({0}) = UPPER(:{1})"; break; case JSFilterComparisionOperatorType.Gt: rslt = "UPPER({0}) > UPPER(:{1})"; break; case JSFilterComparisionOperatorType.Ge: rslt = "UPPER({0}) >= UPPER(:{1})"; break; case JSFilterComparisionOperatorType.Lt: rslt = "UPPER({0}) < UPPER(:{1})"; break; case JSFilterComparisionOperatorType.Le: rslt = "UPPER({0}) <= UPPER(:{1})"; break; case JSFilterComparisionOperatorType.Bgn: rslt = "UPPER({0}) LIKE UPPER(:{1}||'%')"; break; case JSFilterComparisionOperatorType.End: rslt = "UPPER({0}) LIKE UPPER('%'||:{1})"; break; case JSFilterComparisionOperatorType.In: rslt = "UPPER({0}) LIKE UPPER('%'||:{1}||'%')"; break; case JSFilterComparisionOperatorType.IsNull: rslt = "{0} IS NULL{1}"; break; } } break; case JSFieldType.Boolean: { rslt = "{0} = :{1}"; } break; case JSFieldType.Float: case JSFieldType.Int: case JSFieldType.Blob: case JSFieldType.Object: { switch (operation) { case JSFilterComparisionOperatorType.Eq: rslt = "{0} = :{1}"; break; case JSFilterComparisionOperatorType.Gt: rslt = "{0} > :{1}"; break; case JSFilterComparisionOperatorType.Ge: rslt = "{0} >= :{1}"; break; case JSFilterComparisionOperatorType.Lt: rslt = "{0} < :{1}"; break; case JSFilterComparisionOperatorType.Le: rslt = "{0} <= :{1}"; break; } } break; case JSFieldType.Date: { switch (operation) { case JSFilterComparisionOperatorType.Eq: rslt = "{0} = :{1}"; break; case JSFilterComparisionOperatorType.Gt: rslt = "{0} > :{1}"; break; case JSFilterComparisionOperatorType.Ge: rslt = "{0} >= :{1}"; break; case JSFilterComparisionOperatorType.Lt: rslt = "{0} < :{1}"; break; case JSFilterComparisionOperatorType.Le: rslt = "{0} <= :{1}"; break; } } break; } return (hasNot) ? String.Format("NOT({0})", rslt) : rslt; }