Пример #1
0
        public override List<ProcedureParameter> GetProcedureParameters()
        {
            string sql = @"select decode(t.package_name,null,t.object_name,t.package_name || '.' || t.object_name) || t.overload ProcedureName, " +
                " t.argument_name ParameterName,t.data_length Length,t.in_out InOut,t.data_type ParameterType " +
                    "from user_arguments t " +
                    " order by t.package_name,t.object_name ";
            this.Database.Connection.Open();
            DataTable procedureParameterTable = this.Database.ExecuteDataTable(sql, false);
            this.Database.Connection.Close();

            List<ProcedureParameter> procedureParameters = new List<ProcedureParameter>();

            foreach (DataRow row in procedureParameterTable.Rows)
            {
                ProcedureParameter parameter = new ProcedureParameter();
                parameter.ProcedureName = row["ProcedureName"].ToString();
                parameter.ParameterName = row["ParameterName"].ToString();
                parameter.ParameterType = row["ParameterType"].ToString();
                parameter.Length = row["Length"].ToString();
                parameter.IsOutput = row["InOut"].ToString();
                procedureParameters.Add(parameter);
            }
            return procedureParameters;
        }
        public virtual List<ProcedureParameter> GetProcedureParameters()
        {
            string sql = @"select a.name ProcedureName,c.name ParameterName,c.length Length,c.isoutparam IsOutput,d.name ParameterType " +
                    "from sysobjects a " +
                    "left join syscomments b on a.id = b.id " +
                    "left join syscolumns c on a.id = c.id " +
                    "left join systypes d on c.xtype = d.xtype " +
                    "where (a.type='P'or a.type='FN') and a.status<>1 and d.name<>'sysname' order by a.name asc";
            this.Database.Connection.Open();
            DataTable procedureParameterTable = this.Database.ExecuteDataTable(sql, false);
            this.Database.Connection.Close();

            List<ProcedureParameter> procedureParameters = new List<ProcedureParameter>();

            foreach (DataRow row in procedureParameterTable.Rows)
            {
                ProcedureParameter parameter = new ProcedureParameter();
                parameter.ProcedureName = row["ProcedureName"].ToString();
                parameter.ParameterName = row["ParameterName"].ToString();
                parameter.ParameterType = row["ParameterType"].ToString();
                parameter.Length = row["Length"].ToString();
                parameter.IsOutput = row["IsOutput"].ToString();
                procedureParameters.Add(parameter);
            }
            return procedureParameters;
        }
Пример #3
0
        public override List<ProcedureParameter> GetProcedureParameters()
       {
            string parameterSql=@"SELECT  SPECIFIC_NAME AS PROCEDURE_NAME,DATA_TYPE,
            PARAMETER_MODE,PARAMETER_NAME FROM INFORMATION_SCHEMA.parameters  WHERE SPECIFIC_SCHEMA='{0}' ";

            DataTable procedureParameterTable = GetTable(parameterSql);

            var procedureParameters = new List<ProcedureParameter>();

            foreach (DataRow row in procedureParameterTable.Rows)
            {
                var parameter = new ProcedureParameter();
                parameter.ProcedureName = row["PROCEDURE_NAME"].AsString();
                parameter.ParameterName = row["PARAMETER_NAME"].AsString();
                parameter.ParameterType = row["DATA_TYPE"].AsString();
                parameter.IsOutput = string.Equals(row["PARAMETER_MODE"].AsString(), "OUT") ? "1" : "0";
            
                procedureParameters.Add(parameter);
            }

            return procedureParameters;
        }