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); } }
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); }