using GenClassLibrary;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace ConvertApp
{
    public partial class Level2Upload : System.Web.UI.Page
    {
        GenClass obj = new GenClass();
        SqlConnection con;
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {

            }
        }

        //private void AddColumn()
        //{
        //    string grprplc = "";
        //    SqlCommand cmd2 = new SqlCommand("SP_SelectSqlToConvert", con);
        //    cmd2.CommandType = CommandType.StoredProcedure;
        //    cmd2.Parameters.AddWithValue("@business_process", business_process.Trim());
        //    cmd2.Parameters.AddWithValue("@program_name", program_name.Trim());
        //    SqlDataAdapter sda2 = new SqlDataAdapter(cmd2);
        //    DataSet ds2 = new DataSet();
        //    sda2.Fill(ds2);
        //    foreach (DataTable table1 in ds2.Tables)
        //    {
        //        foreach (DataRow dr1 in table1.Rows)
        //        {
        //            string FinalString = "";
        //            string querystatus = "";
        //            int sqlnoitrt = 0;

        //            var sub_query_sts = "";
        //            int colno = 0;
        //            if (dr1["sql_type"].ToString() == "SELECT")
        //            {
        //                if (dr1["lvl1_program_text"].ToString().ToUpper().StartsWith("SELECT") && dr1["lvl1_program_text"].ToString().ToUpper().EndsWith(";") && !dr1["lvl1_program_text"].ToString().ToUpper().Contains("FROM"))
        //                {
        //                    string FirstString = "SELECT";
        //                    string LastString = ";";

        //                    int Pos1 = dr1["lvl1_program_text"].ToString().ToUpper().IndexOf(FirstString) + FirstString.Length;
        //                    int Pos2 = dr1["lvl1_program_text"].ToString().ToUpper().IndexOf(LastString);
        //                    FinalString = dr1["lvl1_program_text"].ToString().ToUpper().Substring(Pos1, Pos2 - Pos1);
        //                    if (FinalString.Contains(","))
        //                    {
        //                        foreach (var col in FinalString.Split(','))
        //                        {
        //                            SqlCommand cmdseq = new SqlCommand("SP_InsertQuerySeq", con);
        //                            cmdseq.CommandType = CommandType.StoredProcedure;
        //                            cmdseq.Parameters.AddWithValue("@business_process", dr1["lvl1_business_process"].ToString().Trim());
        //                            cmdseq.Parameters.AddWithValue("@program_name", dr1["lvl1_program_name"].ToString().Trim());

        //                            cmdseq.Parameters.AddWithValue("@sql_no", dr1["sql_no"].ToString());
        //                            cmdseq.Parameters.AddWithValue("@col_name", col);

        //                            string aliasname = TextFollowing(col, "END ");

        //                            cmdseq.Parameters.AddWithValue("@alias_name", aliasname);

        //                            if (col.Contains("SELECT"))
        //                            {
        //                                sub_query_sts = "Y";

        //                            }
        //                            else
        //                            {
        //                                sub_query_sts = "N";

        //                            }

        //                            if (sqlnoitrt == 0)
        //                            {
        //                                colno = 1;
        //                                sqlnoitrt = Convert.ToInt32(dr1["sql_no"].ToString());
        //                            }
        //                            else
        //                            {
        //                                if (sqlnoitrt == Convert.ToInt32(dr1["sql_no"].ToString()))
        //                                {
        //                                    colno = colno + 1;
        //                                }
        //                                else
        //                                {
        //                                    colno = 1;
        //                                    sqlnoitrt = Convert.ToInt32(dr1["sql_no"].ToString());
        //                                }

        //                            }

        //                            cmdseq.Parameters.AddWithValue("@sub_query_sts", sub_query_sts);
        //                            cmdseq.Parameters.AddWithValue("@qs_col_no", colno);


        //                            int m1 = cmdseq.ExecuteNonQuery();
        //                        }
        //                    }
        //                    else
        //                    {
        //                        SqlCommand cmdseq = new SqlCommand("SP_InsertQuerySeq", con);
        //                        cmdseq.CommandType = CommandType.StoredProcedure;
        //                        cmdseq.Parameters.AddWithValue("@business_process", dr1["lvl1_business_process"].ToString().Trim());
        //                        cmdseq.Parameters.AddWithValue("@program_name", dr1["lvl1_program_name"].ToString().Trim());

        //                        cmdseq.Parameters.AddWithValue("@sql_no", dr1["sql_no"].ToString());
        //                        cmdseq.Parameters.AddWithValue("@col_name", FinalString);

        //                        string aliasname = TextFollowing(FinalString, "END ");

        //                        cmdseq.Parameters.AddWithValue("@alias_name", aliasname);
        //                        if (querystatus != "")
        //                        {
        //                            sub_query_sts = querystatus;

        //                        }
        //                        else
        //                        {
        //                            if (FinalString.Contains("SELECT"))
        //                            {
        //                                sub_query_sts = "Y";

        //                            }
        //                            else
        //                            {
        //                                sub_query_sts = "N";

        //                            }
        //                        }
        //                        if (sqlnoitrt == 0)
        //                        {
        //                            colno = 1;
        //                            sqlnoitrt = Convert.ToInt32(dr1["sql_no"].ToString());
        //                        }
        //                        else
        //                        {
        //                            if (sqlnoitrt == Convert.ToInt32(dr1["sql_no"].ToString()))
        //                            {
        //                                colno = colno + 1;
        //                            }
        //                            else
        //                            {
        //                                colno = 1;
        //                                sqlnoitrt = Convert.ToInt32(dr1["sql_no"].ToString());
        //                            }

        //                        }

        //                        cmdseq.Parameters.AddWithValue("@sub_query_sts", sub_query_sts);
        //                        cmdseq.Parameters.AddWithValue("@qs_col_no", colno);


        //                        int m1 = cmdseq.ExecuteNonQuery();
        //                    }


        //                }

        //            }
        //            else if (dr1["sql_type"].ToString() == "ISELECT")
        //            {


        //                string finalresult = "";
        //                string resbrkup = "";
        //                string res = "";
        //                int count1 = 0;
        //                string FirstString = "SELECT";
        //                string LastString;

        //                if (dr1["lvl1_program_text"].ToString().ToUpper().Contains("FROM"))
        //                {
        //                    LastString = "FROM";
        //                    int Pos1a = dr1["lvl1_program_text"].ToString().ToUpper().IndexOf(FirstString) + FirstString.Length;
        //                    int Pos2b = dr1["lvl1_program_text"].ToString().ToUpper().IndexOf(LastString);
        //                    string selectfrmdt = dr1["lvl1_program_text"].ToString().ToUpper().Substring(Pos1a, Pos2b - Pos1a);
        //                    if (!selectfrmdt.Contains("SELECT"))
        //                    {
        //                        res = selectfrmdt;
        //                    }
        //                    //else
        //                    //{
        //                    int count = 0;
        //                    int a = 0;

        //                    string pattern = "FROM";
        //                    while ((a = dr1["lvl1_program_text"].ToString().ToUpper().IndexOf(pattern, a)) != -1)
        //                    {
        //                        a += pattern.Length;
        //                        count++;
        //                    }
        //                    bool selectsubqueryfrm = false;
        //                    if (count > 1)
        //                    {
        //                        if (dr1["lvl1_program_text"].ToString().ToUpper().Contains("JOIN"))
        //                        {
        //                            if (dr1["lvl1_program_text"].ToString().ToUpper().Contains("FROM("))
        //                            {
        //                                FirstString = "FROM(";
        //                                selectsubqueryfrm = true;
        //                                //querystatus = "Y";
        //                            }
        //                            LastString = "JOIN";
        //                            int Pos1j = dr1["lvl1_program_text"].ToString().ToUpper().IndexOf(FirstString) + FirstString.Length;
        //                            int Pos2j = dr1["lvl1_program_text"].ToString().ToUpper().IndexOf(LastString);
        //                            int i = 0;
        //                            int a2 = 0;
        //                            FinalString = dr1["lvl1_program_text"].ToString().ToUpper().Substring(Pos1j, Pos2j - Pos1j);
        //                            while ((i = FinalString.IndexOf("FROM", i)) != -1)
        //                            {

        //                                if (i != -1)
        //                                {
        //                                    a2 = i;
        //                                }
        //                                i = i + 1;
        //                            }

        //                            if (a2 != 0)
        //                            {
        //                                grprplc = FinalString.Remove(a2);
        //                                if (selectsubqueryfrm == true)
        //                                {
        //                                    grprplc = grprplc.Replace("SELECT", ",");
        //                                }
        //                            }
        //                            else
        //                            {
        //                                grprplc = FinalString;
        //                            }
        //                        }
        //                        else
        //                        {
        //                            LastString = "WHERE";
        //                            int Posa = dr1["lvl1_program_text"].ToString().ToUpper().IndexOf(FirstString) + FirstString.Length;
        //                            int Posb = dr1["lvl1_program_text"].ToString().ToUpper().IndexOf(LastString);
        //                            resbrkup = dr1["lvl1_program_text"].ToString().ToUpper().Substring(Posa, Posb - Posa);

        //                            int a1 = 0;
        //                            while ((a1 = resbrkup.ToString().ToUpper().IndexOf(pattern, a1)) != -1)
        //                            {
        //                                a1 += pattern.Length;
        //                                count1++;
        //                            }

        //                        }
        //                    }
        //                    else
        //                    {
        //                        LastString = "FROM";
        //                    }
        //                    // }
        //                }
        //                else
        //                {
        //                    LastString = ";";
        //                }
        //                int Pos1 = dr1["lvl1_program_text"].ToString().ToUpper().IndexOf(FirstString) + FirstString.Length;
        //                int Pos2 = 0;
        //                if (count1 > 1)
        //                {
        //                    Pos2 = resbrkup.ToString().ToUpper().LastIndexOf("FROM");
        //                    FinalString = resbrkup.ToUpper().Substring(0, Pos2 - 0);
        //                }
        //                else
        //                {
        //                    Pos2 = dr1["lvl1_program_text"].ToString().ToUpper().IndexOf(LastString);
        //                    FinalString = dr1["lvl1_program_text"].ToString().ToUpper().Substring(Pos1, Pos2 - Pos1);
        //                }
        //                //if(FinalString.Contains("FROM"))
        //                //    {

        //                //    int index1 = FinalString.IndexOf("FROM");
        //                //    if (index1 != -1)
        //                //    {
        //                //         FinalString = FinalString.Remove(index1);
        //                //    }
        //                //    else
        //                //    {
        //                //        // "from" not found
        //                //    }
        //                //}



        //                List<int> openbracindex = new List<int>();
        //                List<int> closebracindex = new List<int>();


        //                int bracketCount = 1;
        //                var textArray = FinalString.ToUpper().ToCharArray();

        //                for (int i = 0; i < textArray.Length; i++)
        //                {
        //                    if (textArray[i] == '(')
        //                    {
        //                        openbracindex.Add(i);
        //                        bracketCount++;

        //                    }
        //                    else if (textArray[i] == ')')
        //                    {
        //                        closebracindex.Add(i);
        //                        bracketCount--;
        //                    }

        //                    if (bracketCount == 0)
        //                    {

        //                        break;
        //                    }
        //                }
        //                for (int i = 0; i < openbracindex.Count; i++)
        //                {

        //                    string result = FinalString.ToString().ToUpper().Substring(openbracindex[i], (closebracindex[i] - openbracindex[i]));
        //                    if (result.Contains(','))
        //                    {
        //                        string result1 = result.Replace(",", "~");
        //                        finalresult = finalresult.Replace(result, result1);
        //                    }

        //                }
        //                finalresult = finalresult.Replace("'0000000000',1,10", "'0000000000'~1~10");// not replacing with the above replace code ln no.339.
        //                finalresult = finalresult + resbrkup + res + grprplc;
        //                if (finalresult == "")
        //                {
        //                    finalresult = FinalString;
        //                }
        //                foreach (var col in finalresult.Split(','))
        //                {
        //                    SqlCommand cmdseq = new SqlCommand("SP_InsertQuerySeq", con);
        //                    cmdseq.CommandType = CommandType.StoredProcedure;
        //                    cmdseq.Parameters.AddWithValue("@business_process", dr1["lvl1_business_process"].ToString().Trim());
        //                    cmdseq.Parameters.AddWithValue("@program_name", dr1["lvl1_program_name"].ToString().Trim());

        //                    cmdseq.Parameters.AddWithValue("@sql_no", dr1["sql_no"].ToString());
        //                    cmdseq.Parameters.AddWithValue("@col_name", col);

        //                    string aliasname = TextFollowing(col, "END ");
        //                    if (aliasname == "")
        //                    {
        //                        aliasname = TextFollowing(col, "AS ");
        //                    }
        //                    cmdseq.Parameters.AddWithValue("@alias_name", aliasname);


        //                    if (col.Contains("SELECT"))
        //                    {
        //                        sub_query_sts = "Y";

        //                    }
        //                    else
        //                    {
        //                        sub_query_sts = "N";

        //                    }


        //                    if (sqlnoitrt == 0)
        //                    {
        //                        colno = 1;
        //                        sqlnoitrt = Convert.ToInt32(dr1["sql_no"].ToString());
        //                    }
        //                    else
        //                    {
        //                        if (sqlnoitrt == Convert.ToInt32(dr1["sql_no"].ToString()))
        //                        {
        //                            colno = colno + 1;
        //                        }
        //                        else
        //                        {
        //                            colno = 1;
        //                            sqlnoitrt = Convert.ToInt32(dr1["sql_no"].ToString());
        //                        }

        //                    }

        //                    cmdseq.Parameters.AddWithValue("@sub_query_sts", sub_query_sts);
        //                    cmdseq.Parameters.AddWithValue("@qs_col_no", colno);


        //                    int m1 = cmdseq.ExecuteNonQuery();
        //                }

        //            }
        //            else if (dr1["sql_type"].ToString() == "CREATE")
        //            {
        //                string FirstString = "(";
        //                string LastString = ")";
        //                int Pos1 = dr1["lvl1_program_text"].ToString().ToUpper().IndexOf(FirstString) + FirstString.Length;
        //                int Pos2 = dr1["lvl1_program_text"].ToString().ToUpper().IndexOf(LastString);


        //                FinalString = dr1["lvl1_program_text"].ToString().ToUpper().Substring(Pos1, Pos2 - Pos1);
        //                FinalString = FinalString.TrimStart();
        //                if (FinalString.Contains(","))
        //                {
        //                    var clseprtr = FinalString.Split(',');
        //                    List<string> clseprtrarr = new List<string>();

        //                    foreach (var item in clseprtr)
        //                    {
        //                        if (item.Contains(" "))
        //                        {
        //                            var val = item.TrimStart().Split(' ')[0];
        //                            clseprtrarr.Add(val.ToString());

        //                        }
        //                    }
        //                    FinalString = string.Join(",", clseprtrarr);
        //                    foreach (var col in FinalString.Split(','))
        //                    {
        //                        SqlCommand cmdseq = new SqlCommand("SP_InsertQuerySeq", con);
        //                        cmdseq.CommandType = CommandType.StoredProcedure;
        //                        cmdseq.Parameters.AddWithValue("@business_process", dr1["lvl1_business_process"].ToString().Trim());
        //                        cmdseq.Parameters.AddWithValue("@program_name", dr1["lvl1_program_name"].ToString().Trim());

        //                        cmdseq.Parameters.AddWithValue("@sql_no", dr1["sql_no"].ToString());
        //                        cmdseq.Parameters.AddWithValue("@col_name", col);

        //                        string aliasname = TextFollowing(col, "END ");

        //                        cmdseq.Parameters.AddWithValue("@alias_name", aliasname);

        //                        if (col.Contains("SELECT"))
        //                        {
        //                            sub_query_sts = "Y";

        //                        }
        //                        else
        //                        {
        //                            sub_query_sts = "N";

        //                        }

        //                        if (sqlnoitrt == 0)
        //                        {
        //                            colno = 1;
        //                            sqlnoitrt = Convert.ToInt32(dr1["sql_no"].ToString());
        //                        }
        //                        else
        //                        {
        //                            if (sqlnoitrt == Convert.ToInt32(dr1["sql_no"].ToString()))
        //                            {
        //                                colno = colno + 1;
        //                            }
        //                            else
        //                            {
        //                                colno = 1;
        //                                sqlnoitrt = Convert.ToInt32(dr1["sql_no"].ToString());
        //                            }

        //                        }

        //                        cmdseq.Parameters.AddWithValue("@sub_query_sts", sub_query_sts);
        //                        cmdseq.Parameters.AddWithValue("@qs_col_no", colno);


        //                        int m1 = cmdseq.ExecuteNonQuery();
        //                    }
        //                }
        //                else
        //                {
        //                    SqlCommand cmdseq = new SqlCommand("SP_InsertQuerySeq", con);
        //                    cmdseq.CommandType = CommandType.StoredProcedure;
        //                    cmdseq.Parameters.AddWithValue("@business_process", dr1["lvl1_business_process"].ToString().Trim());
        //                    cmdseq.Parameters.AddWithValue("@program_name", dr1["lvl1_program_name"].ToString().Trim());

        //                    cmdseq.Parameters.AddWithValue("@sql_no", dr1["sql_no"].ToString());
        //                    cmdseq.Parameters.AddWithValue("@col_name", FinalString);

        //                    string aliasname = TextFollowing(FinalString, "END ");

        //                    cmdseq.Parameters.AddWithValue("@alias_name", aliasname);
        //                    if (querystatus != "")
        //                    {
        //                        sub_query_sts = querystatus;

        //                    }
        //                    else
        //                    {
        //                        if (FinalString.Contains("SELECT"))
        //                        {
        //                            sub_query_sts = "Y";

        //                        }
        //                        else
        //                        {
        //                            sub_query_sts = "N";

        //                        }
        //                    }
        //                    if (sqlnoitrt == 0)
        //                    {
        //                        colno = 1;
        //                        sqlnoitrt = Convert.ToInt32(dr1["sql_no"].ToString());
        //                    }
        //                    else
        //                    {
        //                        if (sqlnoitrt == Convert.ToInt32(dr1["sql_no"].ToString()))
        //                        {
        //                            colno = colno + 1;
        //                        }
        //                        else
        //                        {
        //                            colno = 1;
        //                            sqlnoitrt = Convert.ToInt32(dr1["sql_no"].ToString());
        //                        }

        //                    }

        //                    cmdseq.Parameters.AddWithValue("@sub_query_sts", sub_query_sts);
        //                    cmdseq.Parameters.AddWithValue("@qs_col_no", colno);


        //                    int m1 = cmdseq.ExecuteNonQuery();
        //                }
        //            }
        //            else if (dr1["sql_type"].ToString() == "UPDATE")
        //            {

        //            }
        //            else
        //            {

        //            }
        //        }
        //    }
        //        }

        

        public static string TextFollowing(string searchTxt, string value)
        {
            if (!String.IsNullOrEmpty(searchTxt) && !String.IsNullOrEmpty(value))
            {
                int index = searchTxt.IndexOf(value);
                if (-1 < index)
                {
                    int start = index + value.Length;
                    if (start <= searchTxt.Length)
                    {
                        return searchTxt.Substring(start);
                    }
                }
            }
            return null;
        }

        //private void AddTables()
        //{
        //    SqlCommand cmdsqllvl1 = new SqlCommand("SP_SelectLevel1", con);
        //    //SqlCommand cmdsqllvl1 = new SqlCommand("SP_SelectSqlToConvert", con);


        //    cmdsqllvl1.CommandType = CommandType.StoredProcedure;
        //    cmdsqllvl1.Parameters.AddWithValue("@business_process", business_process.Trim());
        //    cmdsqllvl1.Parameters.AddWithValue("@program_name", program_name.Trim());

        //    SqlDataAdapter sdasqllvl1 = new SqlDataAdapter(cmdsqllvl1);
        //    DataSet dssqllvl1 = new DataSet();
        //    sdasqllvl1.Fill(dssqllvl1);

        //    foreach (DataTable table1 in dssqllvl1.Tables)
        //    {
        //        int sqlnoitrttbl = 0;
        //        int colnotbl = 0;
        //        bool isbracket = false;
        //        bool iscomma = false;
        //        bool isfrom = false;

        //        foreach (DataRow dr1 in table1.Rows)
        //        {
        //            List<string> restbls = new List<string>();
        //            var res = dr1["lvl1_program_text"].ToString().ToUpper();
        //            string sub_query_ststbl = "";
        //            string tbl_type = "";
        //            if (dr1["lvl1_program_text"].ToString().ToUpper().Contains("FROM"))
        //            {




        //                if (dr1["lvl1_program_text"].ToString().ToUpper().Contains("SELECT"))
        //                {
        //                    sub_query_ststbl = "Y";

        //                }
        //                else
        //                {
        //                    sub_query_ststbl = "N";

        //                }
        //                res = dr1["lvl1_program_text"].ToString().ToUpper().Substring((dr1["lvl1_program_text"].ToString().ToUpper().IndexOf("FROM")) + 4);
        //                if (res.Contains(","))
        //                {
        //                    iscomma = true;
        //                    isfrom = true;
        //                    if (res.Contains(")"))
        //                    {
        //                        isbracket = true;
        //                        iscomma = false;
        //                    }

        //                    foreach (var tbls in res.Split(','))
        //                    {
        //                        if (tbls.Contains(" "))
        //                        {
        //                            restbls.Add(tbls.Split(' ')[1]);
        //                        }
        //                        else
        //                        {
        //                            restbls.Add(tbls);
        //                        }
        //                    }
        //                }
        //                else
        //                {
        //                    if (res.Contains(" "))
        //                    {
        //                        res = res.Split(' ')[1];
        //                    }

        //                }
        //            }
        //            else if (dr1["lvl1_program_text"].ToString().ToUpper().Contains("JOIN"))
        //            {




        //                if (!dr1["lvl1_program_text"].ToString().ToUpper().Contains("SELECT"))
        //                {
        //                    res = dr1["lvl1_program_text"].ToString().ToUpper().Substring((dr1["lvl1_program_text"].ToString().ToUpper().IndexOf("JOIN")) + 4);
        //                    if (res.Contains(" "))
        //                    {
        //                        res = res.Split(' ')[1];
        //                    }
        //                    sub_query_ststbl = "N";

        //                }
        //                else
        //                {
        //                    res = null;
        //                    sub_query_ststbl = "Y";

        //                }

        //            }
        //            else if (dr1["lvl1_program_text"].ToString().ToUpper().Contains("INSERT INTO"))
        //            {




        //                if (!dr1["lvl1_program_text"].ToString().ToUpper().Contains("SELECT"))
        //                {
        //                    res = dr1["lvl1_program_text"].ToString().ToUpper().Substring((dr1["lvl1_program_text"].ToString().ToUpper().IndexOf("INSERT INTO")) + 10);
        //                    if (res.Contains(" "))
        //                    {
        //                        res = res.Split(' ')[1];
        //                    }
        //                    sub_query_ststbl = "N";

        //                }
        //                else
        //                {
        //                    res = null;
        //                    sub_query_ststbl = "Y";

        //                }

        //            }
        //            else if (dr1["lvl1_program_text"].ToString().ToUpper().Contains("CREATE"))
        //            {
        //                if (dr1["lvl1_program_text"].ToString().ToUpper().Contains("VOLATILE"))
        //                {
        //                    tbl_type = "V";
        //                }

        //                res = dr1["lvl1_program_text"].ToString().ToUpper().Substring((dr1["lvl1_program_text"].ToString().ToUpper().IndexOf("CREATE VOLATILE TABLE")) + 21);
        //                if (res.Contains(" "))
        //                {
        //                    res = res.Split(' ')[1];
        //                }
        //                sub_query_ststbl = "N";




        //            }
        //            else if (dr1["lvl1_program_text"].ToString().ToUpper().Contains("UPDATE"))
        //            {


        //                res = dr1["lvl1_program_text"].ToString().ToUpper().Substring((dr1["lvl1_program_text"].ToString().ToUpper().IndexOf("UPDATE")) + 6);
        //                if (res.Contains(" "))
        //                {
        //                    res = res.Split(' ')[1];
        //                }
        //                sub_query_ststbl = "N";




        //            }
        //            else if (dr1["lvl1_program_text"].ToString().ToUpper().Contains("DELETE"))
        //            {

        //                if (!dr1["lvl1_program_text"].ToString().ToUpper().Contains("FROM"))
        //                {
        //                    res = dr1["lvl1_program_text"].ToString().ToUpper().Substring((dr1["lvl1_program_text"].ToString().ToUpper().IndexOf("DELETE")) + 6);
        //                    if (res.Contains(" "))
        //                    {
        //                        res = res.Split(' ')[1];
        //                    }
        //                    sub_query_ststbl = "N";
        //                }




        //            }
        //            else
        //            {
        //                if (dr1["lvl1_program_text"].ToString().ToUpper().Contains("WHERE"))
        //                {
        //                    isfrom = false;
        //                }
        //                if (isbracket == false)
        //                {
        //                    if (iscomma == true)
        //                    {
        //                        res = dr1["lvl1_program_text"].ToString().ToUpper().TrimStart();
        //                        if (res.Contains(" "))
        //                        {
        //                            res = res.Split(' ')[0];
        //                        }
        //                        sub_query_ststbl = "N";
        //                        iscomma = false;
        //                        isbracket = false;
        //                    }
        //                    else
        //                    {
        //                        if (isfrom == true)
        //                        {
        //                            res = dr1["lvl1_program_text"].ToString().ToUpper().TrimStart();
        //                            if (res.Contains(" "))
        //                            {
        //                                res = res.Split(' ')[0];
        //                            }
        //                            sub_query_ststbl = "N";
        //                        }
        //                        else
        //                        {
        //                            isbracket = false;
        //                            res = null;
        //                        }
        //                    }
        //                }
        //                else
        //                {

        //                    isbracket = false;
        //                    res = null;

        //                }




        //            }


        //            if (restbls.Count != 0)
        //            {
        //                foreach (var tbl in restbls)
        //                {
        //                    if (tbl != null && tbl.Trim() != "")
        //                    {
        //                        if (sqlnoitrttbl == Convert.ToInt32(dr1["sql_no"].ToString()))
        //                        {
        //                            colnotbl = colnotbl + 1;
        //                        }
        //                        else
        //                        {
        //                            colnotbl = 1;
        //                            sqlnoitrttbl = Convert.ToInt32(dr1["sql_no"].ToString());
        //                        }
        //                    }
        //                    SqlCommand cmdqtbl = new SqlCommand("SP_InsertQueryTbl", con);
        //                    cmdqtbl.CommandType = CommandType.StoredProcedure;
        //                    cmdqtbl.Parameters.AddWithValue("@business_process", dr1["lvl1_business_process"].ToString().Trim());
        //                    cmdqtbl.Parameters.AddWithValue("@program_name", dr1["lvl1_program_name"].ToString().Trim());
        //                    cmdqtbl.Parameters.AddWithValue("@sql_no", dr1["sql_no"].ToString());
        //                    cmdqtbl.Parameters.AddWithValue("@qs_tbl_name", tbl);

        //                    cmdqtbl.Parameters.AddWithValue("@sub_query_sts", sub_query_ststbl);
        //                    cmdqtbl.Parameters.AddWithValue("@qs_tbl_no", colnotbl);
        //                    cmdqtbl.Parameters.AddWithValue("@qs_tbl_type", tbl_type);

        //                    int o = cmdqtbl.ExecuteNonQuery();
        //                }
        //            }
        //            else
        //            {
        //                if (res != null && res.Trim() != "")
        //                {
        //                    if (sqlnoitrttbl == Convert.ToInt32(dr1["sql_no"].ToString()))
        //                    {
        //                        colnotbl = colnotbl + 1;
        //                    }
        //                    else
        //                    {
        //                        colnotbl = 1;
        //                        sqlnoitrttbl =
        //                            Convert.ToInt32(dr1["sql_no"].ToString());
        //                    }
        //                    SqlCommand cmdqtbl = new SqlCommand("SP_InsertQueryTbl", con);
        //                    cmdqtbl.CommandType = CommandType.StoredProcedure;
        //                    cmdqtbl.Parameters.AddWithValue("@business_process", dr1["lvl1_business_process"].ToString().Trim());
        //                    cmdqtbl.Parameters.AddWithValue("@program_name", dr1["lvl1_program_name"].ToString().Trim());
        //                    cmdqtbl.Parameters.AddWithValue("@sql_no", dr1["sql_no"].ToString());
        //                    cmdqtbl.Parameters.AddWithValue("@qs_tbl_name", res);

        //                    cmdqtbl.Parameters.AddWithValue("@sub_query_sts", sub_query_ststbl);
        //                    cmdqtbl.Parameters.AddWithValue("@qs_tbl_no", colnotbl);
        //                    cmdqtbl.Parameters.AddWithValue("@qs_tbl_type", tbl_type);

        //                    int o = cmdqtbl.ExecuteNonQuery();
        //                }


        //            }
        //        }
        //    }
        //}
    }
}