コード例 #1
0
        public static void SPToCoreScan()
        {
            var dt_SpList   = new DataTable();
            var dt_SpParam  = new DataTable();
            var dt_SpResult = new DataTable();

            Console.WriteLine($"{DateTime.Now.ToString("yyyy-MM-dd HH':'mm':'ss")} STEP 1 - GET STORED PROCEDURE LIST");

            dt_SpList = Get_StoreProcedure_List();

            Console.WriteLine($"{DateTime.Now.ToString("yyyy-MM-dd HH':'mm':'ss")} STEP 2 - PROCESS STORED PROCEDURE");
            Console.WriteLine($"{DateTime.Now.ToString("yyyy-MM-dd HH':'mm':'ss")} STEP 2 - Total Stored Procedure: {dt_SpList.Rows.Count}");

            int    i       = 1;
            string _schema = "";
            string _sp     = "";

            foreach (DataRow r in dt_SpList.Rows)
            {
                _schema = r["ROUTINE_SCHEMA"].ToString();
                _sp     = r["ROUTINE_NAME"].ToString();

                dt_SpParam  = Get_StoreProcedure_Param(_schema, _sp);
                dt_SpResult = Get_StoreProcedure_Result(_schema, _sp);

                Console.WriteLine($"{DateTime.Now.ToString("yyyy-MM-dd HH':'mm':'ss")} STEP 2 - {i} / {dt_SpList.Rows.Count} ==> \"{r["ROUTINE_NAME"]}\"");

                var pList = new List <SpParam>();
                foreach (DataRow par in dt_SpParam.Rows)
                {
                    var _p = new SpParam()
                    {
                        Param      = par["Parameter"].ToString().Replace("@", ""),
                        Type       = SP_GetType(par["Type"].ToString(), (bool)par["is_nullable"]),
                        Length     = (par["Length"].GetType().Name == "DBNull" ? null : par["Length"].ToString()),
                        Precision  = (par["Precision"].GetType().Name == "DBNull" ? null : par["Precision"].ToString()),
                        Scale      = (par["Scale"].GetType().Name == "DBNull" ? null : par["Scale"].ToString()),
                        Order      = (par["Order"].GetType().Name == "DBNull" ? null : par["Order"].ToString()),
                        isOutput   = (bool)par["is_Output"],
                        isNullable = (bool)par["is_nullable"],
                        Collation  = (par["Collation"].GetType().Name == "DBNull" ? null : par["Collation"].ToString()),
                        DbType     = SP_GetDbType(par["Type"].ToString()),

                        sql_Param      = (par["Parameter"].GetType().Name == "DBNull" ? null : par["Parameter"].ToString()),
                        sql_Type       = (par["Type"].GetType().Name == "DBNull" ? null : par["Type"].ToString()),
                        sql_Length     = (par["Length"].GetType().Name == "DBNull" ? null : par["Length"].ToString()),
                        sql_Prec       = (par["Precision"].GetType().Name == "DBNull" ? null : par["Precision"].ToString()),
                        sql_Scale      = (par["Scale"].GetType().Name == "DBNull" ? null : par["Scale"].ToString()),
                        sql_Order      = (par["Order"].GetType().Name == "DBNull" ? null : par["Order"].ToString()),
                        sql_isOutput   = (par["is_Output"].GetType().Name == "DBNull" ? null : par["is_Output"].ToString()),
                        sql_isNullable = (par["is_nullable"].GetType().Name == "DBNull" ? null : par["is_nullable"].ToString()),
                        sql_Collation  = (par["Collation"].GetType().Name == "DBNull" ? null : par["Collation"].ToString()),
                    };



                    pList.Add(_p);
                }

                var rList    = new List <SpResultElement>();
                int rCounter = 0;
                foreach (DataRow res in dt_SpResult.Rows)
                {
                    var _r = new SpResultElement()
                    {
                        Name       = (string.IsNullOrEmpty(res["name"].ToString()) ? $"Col{rCounter}" : res["name"].ToString()),
                        Type       = SP_GetType(res["system_type_name"].ToString(), (bool)res["is_nullable"]),
                        Length     = (res["max_length"].GetType().Name == "DBNull" ? null : res["max_length"].ToString()),
                        Precision  = (res["precision"].GetType().Name == "DBNull" ? null : res["precision"].ToString()),
                        Scale      = (res["scale"].GetType().Name == "DBNull" ? null : res["scale"].ToString()),
                        Order      = (res["column_ordinal"].GetType().Name == "DBNull" ? null : res["column_ordinal"].ToString()),
                        isNullable = (bool)res["is_nullable"],
                        Collation  = (res["collation_name"].GetType().Name == "DBNull" ? null : res["collation_name"].ToString()),

                        sql_Name       = (res["name"].GetType().Name == "DBNull" ? null : res["name"].ToString()),
                        sql_Type       = (res["system_type_name"].GetType().Name == "DBNull" ? null : res["system_type_name"].ToString()),
                        sql_Length     = (res["max_length"].GetType().Name == "DBNull" ? null : res["max_length"].ToString()),
                        sql_Precision  = (res["precision"].GetType().Name == "DBNull" ? null : res["precision"].ToString()),
                        sql_Scale      = (res["scale"].GetType().Name == "DBNull" ? null : res["scale"].ToString()),
                        sql_Order      = (res["column_ordinal"].GetType().Name == "DBNull" ? null : res["column_ordinal"].ToString()),
                        sql_isNullable = (res["is_nullable"].GetType().Name == "DBNull" ? null : res["is_nullable"].ToString()),
                        sql_Collation  = (res["collation_name"].GetType().Name == "DBNull" ? null : res["collation_name"].ToString()),
                    };


                    rList.Add(_r);
                }

                var sp = new Sp()
                {
                    Name    = r["ROUTINE_NAME"].ToString(),
                    Schema  = r["ROUTINE_SCHEMA"].ToString(),
                    Params  = pList,
                    Results = rList
                };

                SpList.Add(sp);

                i++;
            }

            Console.WriteLine($"{DateTime.Now.ToString("yyyy-MM-dd HH':'mm':'ss")} FINISH");

            SPToCoreT4 spToCoreT4Processed = new SPToCoreT4(SpList, P_NameSpace, P_OutPutSolutionFolder, P_ContextSource);

            File.WriteAllText(Path.Combine(P_OutPutPhysicalFolder, P_OutPutFilename), spToCoreT4Processed.TransformText());

            if (ExceptionList.Count > 0)
            {
                Console.WriteLine($"{DateTime.Now.ToString("yyyy-MM-dd HH':'mm':'ss")} EXCEPTIONS FOUND! Please check SPToCore_log.txt in '{P_OutPutPhysicalFolder}'");
                WriteException();
            }
        }
コード例 #2
0
ファイル: ArrayBoundsTests.cs プロジェクト: noahfalk/corefx
        private static void VerifyStructWithTwoValuesArrayWithUShortSize(ushort size)
        {
            // generate the expression
            Expression<Func<Sp[]>> e =
                Expression.Lambda<Func<Sp[]>>(
                    Expression.NewArrayBounds(typeof(Sp),
                        Expression.Constant(size, typeof(ushort))),
                    Enumerable.Empty<ParameterExpression>());
            Func<Sp[]> f = e.Compile();

            // get the array
            Sp[] result = null;
            Exception creationEx = null;
            try
            {
                result = f();
            }
            catch (Exception ex)
            {
                creationEx = ex;
            }

            // generate expected array
            Sp[] expected = null;
            Exception expectedEx = null;
            try
            {
                expected = new Sp[(long)size];
            }
            catch (Exception ex)
            {
                expectedEx = ex;
            }

            // if one failed, verify the other did, too
            if (creationEx != null || expectedEx != null)
            {
                Assert.NotNull(creationEx);
                Assert.NotNull(expectedEx);
                Assert.Equal(expectedEx.GetType(), creationEx.GetType());
            }
            else
            {
                // otherwise, verify the contents array
                Assert.Equal(expected.Length, result.Length);
                for (int i = 0; i < result.Length; i++)
                {
                    Assert.Equal(expected[i], result[i]);
                }
            }
        }
コード例 #3
0
        // Example:
        //
        //    0:009> r
        //     r0=00000000  r1=00000000  r2=00000000  r3=76fdcf09  r4=00000000  r5=028df6e0
        //     r6=028df730  r7=00000000  r8=00000001  r9=01507858 r10=015156a8 r11=028df8e8
        //    r12=00000000  sp=028df6c8  lr=00000000  pc=76ccce24 psr=600f0030 -ZC-- Thumb
        //    KERNELBASE!RaiseFailFastException+0x60:
        //    76ccce24 f000f846 bl          KERNELBASE!SignalStartWerSvc (76ccceb4)
        //
        public override ColorString ToColorString()
        {
            if (null == m_colorString)
            {
                ConsoleColor color;
                ColorString  cs = new ColorString(" r0=");
                color = GetColorForDiffAgainstBaseline("r0");
                cs.Append(R0.GetColorizedValueString(color));
                cs.Append("  r1=");
                color = GetColorForDiffAgainstBaseline("r1");
                cs.Append(R1.GetColorizedValueString(color));
                cs.Append("  r2=");
                color = GetColorForDiffAgainstBaseline("r2");
                cs.Append(R2.GetColorizedValueString(color));
                cs.Append("  r3=");
                color = GetColorForDiffAgainstBaseline("r3");
                cs.Append(R3.GetColorizedValueString(color));
                cs.Append("  r4=");
                color = GetColorForDiffAgainstBaseline("r4");
                cs.Append(R4.GetColorizedValueString(color));
                cs.Append("  r5=");
                color = GetColorForDiffAgainstBaseline("r5");
                cs.Append(R5.GetColorizedValueString(color));
                cs.AppendLine();

                cs.Append(" r6=");
                color = GetColorForDiffAgainstBaseline("r6");
                cs.Append(R6.GetColorizedValueString(color));
                cs.Append("  r7=");
                color = GetColorForDiffAgainstBaseline("r7");
                cs.Append(R7.GetColorizedValueString(color));
                cs.Append("  r8=");
                color = GetColorForDiffAgainstBaseline("r8");
                cs.Append(R8.GetColorizedValueString(color));
                cs.Append("  r9=");
                color = GetColorForDiffAgainstBaseline("r9");
                cs.Append(R9.GetColorizedValueString(color));
                cs.Append(" r10=");
                color = GetColorForDiffAgainstBaseline("r10");
                cs.Append(R10.GetColorizedValueString(color));
                cs.Append(" r11=");
                color = GetColorForDiffAgainstBaseline("r11");
                cs.Append(R11.GetColorizedValueString(color));
                cs.AppendLine();

                cs.Append("r12=");
                color = GetColorForDiffAgainstBaseline("r12");
                cs.Append(R12.GetColorizedValueString(color));
                cs.Append("  sp=");
                color = GetColorForDiffAgainstBaseline("sp");
                cs.Append(Sp.GetColorizedValueString(color));
                cs.Append("  lr=");
                color = GetColorForDiffAgainstBaseline("lr");
                cs.Append(Lr.GetColorizedValueString(color));
                cs.Append("  pc=");
                color = GetColorForDiffAgainstBaseline("pc");
                cs.Append(Pc.GetColorizedValueString(color));
                cs.Append(" psr=");
                color = GetColorForDiffAgainstBaseline("psr");
                cs.Append(Psr.GetColorizedValueString(color));

                // TODO:
                cs.AppendLine(" TBD: flags and mode");

                cs.Append(DbgProvider.ColorizeSymbol(StackFrame.SymbolName));
                if (0 != StackFrame.Displacement)
                {
                    cs.Append("+0x");
                    cs.Append(StackFrame.Displacement.ToString("x"));
                }
                cs.AppendLine(":");
                cs.Append(Disasm(Pc.ValueAsPointer));

                m_colorString = cs;
            }
            return(m_colorString);
        } // end ToString()