public static TDictionaryStringInt32 Parse(SqlString AString)
    {
        if (AString.IsNull) return null;

        TDictionaryStringInt32 LResult = new TDictionaryStringInt32();
        LResult.FromString(AString.Value);

        return LResult;
    }
        /// <summary>
        /// Возвращает значение параметра типа TDictionaryStringInt32
        /// </summary>
        protected TDictionaryStringInt32 AsTDictionaryStringInt32(String AName)
        {
            Object LValue;
              if (!FData.TryGetValue(AName, out LValue)) return null;

              try
              {
            if(LValue is SqlUdt)
              LValue = ((SqlUdt)LValue).CreateUdtObject(true);

            if (LValue is TDictionaryStringInt32)
              return (TDictionaryStringInt32)LValue;
            else
            {
              TDictionaryStringInt32 LResult = new TDictionaryStringInt32();
              if (LValue is SqlString)
            LResult.FromString(((SqlString)LValue).Value);
              else if (LValue is SqlChars)
            LResult.FromString(((SqlChars)LValue).ToString());
              //else if (LValue is Sql.SqlAnsiString) return new SqlBinary(((Sql.SqlAnsiString)LValue).Buffer);
              else
              {
            System.IO.BinaryReader r;
            if (LValue is SqlBytes)
              r = new System.IO.BinaryReader(((SqlBytes)LValue).Stream);
            else if (LValue is SqlBinary)
              r = new System.IO.BinaryReader(new System.IO.MemoryStream(((SqlBinary)LValue).Value));
            else
              throw new Exception();
            LResult.Read(r);
              }

              return LResult;
            }
              }
              catch
              {
            throw new Exception(String.Format("Не удалось сконвертировать значение '{0}' параметра '{1}' в тип TDictionaryStringInt32", Sql.ValueToString(LValue, Sql.ValueDbStyle.Text), AName));
              }
        }