コード例 #1
0
        public void CrearIndex(string pUser)
        {
            DataTable dtTablas = new DataTable();
            DataTable dtIndex  = new DataTable();

            CapaNegocios.clsIndex vNegocios = new CapaNegocios.clsIndex();
            try
            {
                dtTablas = ConvertToDataTable(vTablas);
                dtIndex  = ConvertToDataTable(vIndeces);
                vNegocios.CrearIndex(dtTablas, dtIndex, pUser);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message, ex);
            }
        }
コード例 #2
0
        private string ConsultarIndex(List <Tablas> pCampos, string pUser)
        {
            CapaNegocios.clsIndex vNegocioIndex = new CapaNegocios.clsIndex();
            DataTable             dtIndex       = new DataTable();
            List <Tablas>         vDatos;
            bool   vBandera      = false;
            string vResultado    = string.Empty;
            bool   vIndexCluster = false;
            Tablas vIndex;

            try
            {
                foreach (Tablas vItem in vTablas)
                {
                    dtIndex = vNegocioIndex.ValidarIndex(vItem.NombreTabla, pUser);
                    if (dtIndex.Rows.Count > 0)
                    {
                        vDatos = (from x in pCampos
                                  where x.AliasTabla == vItem.AliasTabla
                                  select x).ToList();
                        if (dtIndex.Select("index_description='clustered located on PRIMARY'").Length > 0)
                        {
                            vIndexCluster = true;
                        }
                        else
                        {
                            if (dtIndex.Select("index_description='clustered, unique, primary key located on PRIMARY'").Length > 0)
                            {
                                vIndexCluster = true;
                            }
                            else
                            {
                                vIndexCluster = false;
                            }
                        }
                        foreach (Tablas vItems in vDatos)
                        {
                            foreach (DataRow vRow in dtIndex.Rows)
                            {
                                foreach (string vNombreCol in vRow["index_Keys"].ToString().Split(Convert.ToChar(",")))
                                {
                                    if (vItems.NombreCampo.ToUpper() == vNombreCol.ToUpper())
                                    {
                                        vBandera = true;
                                    }
                                }
                            }
                            if (!vBandera)
                            {
                                vResultado += " El campo " + vItems.NombreCampo + " de la tabla " + vItem.NombreTabla +
                                              "no está contenido en ningún índice\n";

                                vIndex             = new Tablas();
                                vIndex.NombreTabla = vItem.NombreTabla;
                                vIndex.NombreCampo = vItems.NombreCampo;
                                if (vIndexCluster)
                                {
                                    vIndex.TipoIndex = "NC";
                                }
                                else
                                {
                                    vIndex.TipoIndex = "C";
                                }
                                vIndeces.Add(vIndex);
                            }
                            vBandera = false;
                        }
                    }
                    else
                    {
                        vResultado += "La tabla " + vItem.NombreTabla + " no contiene un índice\n";
                        vDatos      = (from x in pCampos
                                       where x.AliasTabla == vItem.AliasTabla
                                       select x).ToList();

                        foreach (Tablas vItems in vDatos)
                        {
                            vIndex = new Tablas()
                            {
                                NombreTabla = vItem.NombreTabla,
                                NombreCampo = vItems.NombreCampo,
                                TipoIndex   = "C"
                            };
                            vIndeces.Add(vIndex);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            return(vResultado);
        }