Exemple #1
0
        //internal ColumnInfo(DB2DataReader reader)
        //{
        //	ColumnNumber = Convert.ToInt32(reader.GetValue(reader.GetOrdinal("COLNO")));
        //	SqlColumnType = Convert.ToString(reader.GetValue(reader.GetOrdinal("COLTYPE")));
        //	DotNetColumnType = GetTypeFromDB2(SqlColumnType);
        //	IsPrimary = !string.IsNullOrWhiteSpace(Convert.ToString(reader.GetValue(reader.GetOrdinal("KEYSEQ"))));
        //	Name = Convert.ToString(reader.GetValue(reader.GetOrdinal("NAME")));
        //	Remarks = Convert.ToString(reader.GetValue(reader.GetOrdinal("REMARKS")));
        //}

        internal ColumnInfo(DataRow data)
        {
            var baseColumnType = Convert.ToString(data.Field <object>("COLTYPE")).Trim();

            ColumnNumber     = Convert.ToInt32(data.Field <object>("COLNO"));
            SqlColumnType    = $"{baseColumnType} [{data.Field<object>("LENGTH")}]";
            DotNetColumnType = DB2TypeFactory.GetTypeFromDB2(baseColumnType);
            IsPrimary        = !string.IsNullOrWhiteSpace(Convert.ToString(data.Field <object>("KEYSEQ")));
            Name             = Convert.ToString(data.Field <object>("COLNAME"));
            Remarks          = Convert.ToString(data.Field <object>("COLREMARKS"));
        }
        public StoredProcedureParameterInfo(string parameterText)
        {
            var match = _parameterRegex.Match(parameterText);

            if (!match.Success)
            {
                throw new Exception("Invalid parameter text.");
            }

            if (match.Groups["ParameterModifier"].Success)
            {
                DirectionText = match.Groups["ParameterModifier"].Value;
            }
            else
            {
                DirectionText = "IN";
            }

            if (DirectionText == "IN")
            {
                Direction = System.Data.ParameterDirection.Input;
            }
            if (DirectionText == "INOUT")
            {
                Direction = System.Data.ParameterDirection.InputOutput;
            }
            if (DirectionText == "OUT")
            {
                Direction = System.Data.ParameterDirection.Output;
            }


            Name = match.Groups["ParameterName"].Value;

            DB2Type = match.Groups["ParameterType"].Value;

            DotNetType     = DB2TypeFactory.GetTypeFromDB2(DB2Type);
            DotNetModifier = DB2TypeFactory.GetModifierFromDB2(DirectionText);
        }