public static Boolean ExecuteBatch(string sql, bool showError = false)
        {
            SqlStatments st = new SqlStatments();

            string[] sqls = SqlStatments.ParseSQLtoSubSQLs(sql);
            int      i, size = sqls != null ? sqls.Length : 0;
            string   temp;
            bool     success = true;
            bool     executeWithParameters = false;

            for (i = 0; i < size; i++)
            {
                temp = sqls[i].Trim();
                if (temp.Length > 0)
                {
                    // do not execute comments
                    if (temp.StartsWith("--"))
                    {
                        log("Not running: " + temp);
                        continue;
                    }
                    if (temp.ToLower().StartsWith("exec"))
                    {
                        if (temp.IndexOf(NAME_VALUE_PARAMETER) >= 0 || executeWithParameters)
                        {
                            success &= ExecuteStoredProcedureWithParameters(temp);
                            executeWithParameters = true;
                        }
                        else
                        {
                            success &= ExecuteStoreProcedure(temp, showError);
                        }
                    }
                    else
                    {
                        success &= ExecuteUpdateSQL(temp, showError);
                    }
                }
            }

            return(success);
        }
        public static bool IsValidSQL(string sql, out string message)
        {
            DataSet ds = new DataSet();

            message = string.Empty;

            if (m_adapter == null)
            {
                return(false);
            }

            string[] sqls = SqlStatments.ParseSQLtoSubSQLs(sql);

            foreach (string statement in sqls)
            {
                if (!string.IsNullOrEmpty(statement))
                {
                    sql = "EXPLAIN PLAN  FOR " + statement;

                    DbServices.m_adapter.SelectCommand             = DbServices.m_command;
                    DbServices.m_adapter.SelectCommand.CommandText = sql;


                    try
                    {
                        DbServices.m_adapter.Fill(ds, "table");
                    }
                    catch (SqlException ex)
                    {
                        message = ex.Message;

                        return(false);
                    }
                }
            }
            return(true);
        }