예제 #1
0
        public static string GetStoredProcedureParameterValueAndDataTypeString(StoredProcedure storedProcedure)
        {
            StringBuilder result = new StringBuilder(100);

            for (int i = 0; i < storedProcedure.Parameters.Length; i++)
            {
                if (i > 0)
                {
                    result.Append(", ");
                }
                StoredProcedure.Parameter parameter = storedProcedure.Parameters[i];
                string alias    = Script.GetCamelCase(parameter.Alias);
                string modifier = "";

                if (parameter.Direction.ToLower().IndexOf("out") >= 0)
                {
                    modifier = "ref ";
                }
                result.AppendFormat("{0}{1} {2}", modifier, CSharp.GetDataType(parameter.DataType, false), alias);
            }
            return(result.ToString());
        }
예제 #2
0
        public List<StoredProcedure> GetScalarFunctionCollection()
        {
            List<StoredProcedure> _fns = new List<StoredProcedure>();
            IDataReader rdr = GetScalarFunctionRdr();
            while (rdr.Read())
            {
                StoredProcedure sp = new StoredProcedure(
                    rdr[SqlSchemaVariable.SCHEMA_NAME].ToString(),
                    rdr[SqlSchemaVariable.NAME].ToString());
                sp.sqlType = rdr[SqlSchemaVariable.DATA_TYPE].ToString();
                sp.dbType = GetDbType(sp.sqlType);
                _fns.Add(sp);
            }
            rdr.Close();

            foreach (StoredProcedure sp in _fns)
            {
                rdr = GetSPParams(sp.Name);
                while (rdr.Read())
                {
                    StoredProcedure.Parameter par = new StoredProcedure.Parameter();
                    SetParameter(rdr, par);
                    par.QueryParameter = MakeParam(par.Name);
                    par.DisplayName = Utility.GetParameterName(par.Name);
                    sp.Parameters.Add(par);
                }
                rdr.Close();
            }
            return _fns;
        }
예제 #3
0
        public List<StoredProcedure> GetTableFunctionCollection()
        {
            List<StoredProcedure> _fns = new List<StoredProcedure>();
            string[] fns = GetFunctionNameList();

            foreach (string s in fns)
            {
                string[] a = Regex.Split(s, @"\.");
                StoredProcedure sp = new StoredProcedure(a[0], a[1]);
                sp.ClassName = Db.Service.GetSchema(a[1], TableType.Function).ClassName;

                //get the params
                IDataReader rdr = GetSPParams(a[1]);
                while (rdr.Read())
                {
                    StoredProcedure.Parameter par = new StoredProcedure.Parameter();
                    SetParameter(rdr, par);
                    par.QueryParameter = MakeParam(par.Name);
                    par.DisplayName = Utility.GetParameterName(par.Name);
                    sp.Parameters.Add(par);
                }
                for (int i = 0; i < sp.Parameters.Count; i++)
                    rdr.Close();
                _fns.Add(sp);
            }
            return _fns;
        }
예제 #4
0
        public List<StoredProcedure> GetStoredProcedureCollection()
        {
            List<StoredProcedure> sps = GetSPList();

            foreach (var sp in sps)
            {
                var rdr = GetSPParams(sp.Name);
                while (rdr.Read())
                {
                    var par = new StoredProcedure.Parameter();
                    SetParameter(rdr, par);
                    par.QueryParameter = MakeParam(par.Name);
                    par.DisplayName = Utility.GetParameterName(par.Name);
                    sp.Parameters.Add(par);
                }
                rdr.Close();
            }
            return sps;
        }
예제 #5
0
        public static string GetDataType(StoredProcedure.Parameter parameter)
        {
            bool isNullable = false; // TODO: need to add a property to Parameters that specify whether they are nullable (have default values).

            return(CSharp.GetDataType(parameter.DataType, isNullable));
        }