예제 #1
0
    /// <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;
		}
예제 #2
0
 /// <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;
 }
예제 #3
0
 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;
 }