Ejemplo n.º 1
0
		/// <summary>
		///     Создает значение по умолчанию
		/// </summary>
		/// <param name="dbField"></param>
		/// <param name="attr"></param>
		/// <param name="e"></param>
		/// <returns></returns>
		public static DefaultValue Create(Field dbField, string attr, XElement e){
			var result = new DefaultValue();
			result.DefaultValueType = DbDefaultValueType.Native;
			if (string.IsNullOrWhiteSpace(attr)){
				if (dbField.DataType.IsString){
					result.Value = "";
				}else if (dbField.DataType.IsDateTime){
					result.Value = "('19000101')";
				}else if (dbField.DataType.IsBool){
					result.Value = false;
				}
				else{
					result.Value = 0;
				}
				result.IsDefault = true;
			}
			else{
				if (attr.Contains("'") || attr.Contains("(")){
					result.Value = attr;
					result.DefaultValueType = DbDefaultValueType.Expression;
				}
				else{
					if (dbField.DataType.IsString){
						result.Value = attr;
					}
					else if (dbField.DataType.IsDateTime){
						try{
							attr.ToDate();
							result.DefaultValueType = DbDefaultValueType.Native;

							result.Value = attr;
						}
						catch{
							result.DefaultValueType = DbDefaultValueType.Expression;

							result.Value = attr;
						}
					} else {
						try {
							result.Value = attr.ToDecimal();
						} catch {
							result.DefaultValueType = DbDefaultValueType.Expression;
							result.Value = attr;
						}
					}
				}
				result.IsDefault = false;
			}
			return result;
		}
Ejemplo n.º 2
0
        /// <summary>
        ///     Создает значение по умолчанию
        /// </summary>
        /// <param name="dbField"></param>
        /// <param name="attr"></param>
        /// <param name="e"></param>
        /// <returns></returns>
        public static DefaultValue Create(Field dbField, string attr, XElement e)
        {
            var result = new DefaultValue();

            result.DefaultValueType = DbDefaultValueType.Native;
            if (string.IsNullOrWhiteSpace(attr))
            {
                if (dbField.DataType.IsString)
                {
                    result.Value = "";
                }
                else if (dbField.DataType.IsDateTime)
                {
                    result.Value = "('19000101')";
                }
                else if (dbField.DataType.IsBool)
                {
                    result.Value = false;
                }
                else
                {
                    result.Value = 0;
                }
                result.IsDefault = true;
            }
            else
            {
                if (attr.Contains("'") || attr.Contains("("))
                {
                    result.Value            = attr;
                    result.DefaultValueType = DbDefaultValueType.Expression;
                }
                else
                {
                    if (dbField.DataType.IsString)
                    {
                        result.Value = attr;
                    }
                    else if (dbField.DataType.IsDateTime)
                    {
                        try{
                            attr.ToDate();
                            result.DefaultValueType = DbDefaultValueType.Native;

                            result.Value = attr;
                        }
                        catch {
                            result.DefaultValueType = DbDefaultValueType.Expression;

                            result.Value = attr;
                        }
                    }
                    else
                    {
                        try {
                            result.Value = attr.ToDecimal();
                        } catch {
                            result.DefaultValueType = DbDefaultValueType.Expression;
                            result.Value            = attr;
                        }
                    }
                }
                result.IsDefault = false;
            }
            return(result);
        }
Ejemplo n.º 3
0
 private void SetupDefaultValue(IBSharpClass c, XElement e)
 {
     DefaultSqlValue    = DefaultValue.Create(this, e.Attr("default"), e);
     DefaultObjectValue = DefaultValue.Create(this, e.Attr("csharp-default"), e);
 }