private void MuestraCamposTabla() { //lleno el combo de los campos de la tabla ComboCampo.Items.Clear(); List <Objetos.CParametro> lista; lista = DB.DameCamposTabla(Tabla); foreach (Objetos.CParametro obj in lista) { ComboCampo.Items.Add(obj); ListaCampos.Items.Add(obj); } }
public string DameInsert(string tabs, string sx) { //regresa la sintaxis de un insert en una tabla Objetos.CSysObject Tabla = Lista[ListaObjetos.SelectedIndex]; string s = sx + "into " + Tabla.Nombre + "("; string s2 = "\r\n" + tabs + "values("; System.Collections.Generic.List <Objetos.CParametro> campos; campos = DB.DameCamposTabla(Tabla.Nombre); bool primero = true; foreach (Objetos.CParametro campo in campos) { if (primero == true) { s = s + campo.nombre; primero = false; } else { s = s + "," + campo.nombre; s2 = s2 + ","; } } s = s + ")" + s2 + ")"; return(s); }
public CTabla(Controladores_DB.IDataBase db, string nombre, Graphics gp) { GP = gp; DB = db; Nombre = nombre; //cargo todos mis campos de la tabla Campos = DB.DameCamposTabla(nombre); NCampos = Campos.Count; //inicializo algunas variables DY = 15; //marca la distancia entre relglon y renglon //calculo el ancho de la tabla Ancho = Nombre.Length; MaxText = Nombre; //recorro todos los campos de la tabla foreach (Objetos.CParametro obj in Campos) { string s = obj.nombre + ":" + obj.TipoSP; if (s.Length > Ancho) { Ancho = s.Length; MaxText = s; } } //genero el tipo de letra que voy a utilizar Font = new Font("Times New Roman", 9, FontStyle.Bold); }
public override void Inicializate() { string tabla = (string)DameValor("Tabla"); if (Tabla == tabla) { //no nececito actualizar nada return; } Tabla = tabla; //cambio el nombre de la tabla, por lo que actualizo mis listas ListaCampos.Items.Clear(); ListaParametros.Items.Clear(); //me traigo la lista de campos de la tabla List <Objetos.CParametro> campos = DB.DameCamposTabla(Tabla); List <Objetos.CParametro> lista = (List <Objetos.CParametro>)DameValor("ListaParametros"); foreach (Objetos.CParametro obj in campos) { bool encontrado = false; //veo si el campo esta en la lista de parametros foreach (Objetos.CParametro p in lista) { if (obj.nombre == p.nombre) { encontrado = true; break; } } if (encontrado == false) { ListaCampos.Items.Add(obj); } } }
private void ListaTablas_AfterSelect(object sender, TreeViewEventArgs e) { TablaActual = e.Node.Text; //ahora me traigo los campos de la tabla List <Objetos.CParametro> Campos; Campos = DB.DameCamposTabla(TablaActual); //lleno la lista de campos ListaCampos.Nodes.Clear(); foreach (Objetos.CParametro obj in Campos) { TreeNode nodo = new TreeNode(obj.nombre); nodo.Tag = obj; //selecciono el icono que le corresponde //hay 4 posobilidades //1. que sea un campo normal //2. que dea un campo con llave foranea //3. que sea un campo con llave primaria //4. que sea un campo con llave primaria y foranea //veo si el campo tiene llave primaria obj.LLaveForanea = DB.EsLLaveForanea(TablaActual, obj.nombre); if (obj.LLavePrimaria && obj.LLaveForanea) { nodo.ImageIndex = 4; nodo.SelectedImageIndex = 4; } else if (obj.LLavePrimaria) { nodo.ImageIndex = 3; nodo.SelectedImageIndex = 3; } else if (obj.LLaveForanea) { nodo.ImageIndex = 2; nodo.SelectedImageIndex = 2; } else { nodo.ImageIndex = 1; nodo.SelectedImageIndex = 1; } ListaCampos.Nodes.Add(nodo); } }
public override void Inicializate() { string tipo = (string)DameValor("Tipo"); if (tipo == "Lectura") { CHExcepcion.Visible = true; label3.Visible = true; TExcepcion.Visible = true; label5.Visible = true; TComentarios.Visible = true; } else { CHExcepcion.Visible = false; label3.Visible = false; TExcepcion.Visible = false; label5.Visible = false; TComentarios.Visible = false; } string tabla = (string)DameValor("Tabla"); if (Tabla == tabla) { //no nececito actualizar nada return; } Tabla = tabla; //cambio el nombre de la tabla, por lo que actualizo mis listas ListaCampos.Items.Clear(); ListaParametros.Items.Clear(); //me traigo la lista de campos de la tabla List <Objetos.CParametro> campos = DB.DameCamposTabla(Tabla); foreach (Objetos.CParametro obj in campos) { if (obj.LLavePrimaria == true && (tipo == "Update" || tipo == "Delete")) { ListaParametros.Items.Add(obj); } else { ListaCampos.Items.Add(obj); } } if (tipo == "Delete") { //es de borrado, por loque desactivo unos botones ListaCampos.Enabled = false; //ListaParametros.Enabled = false; //ListaParametros.ContextMenu = null; } }
private void FormDocumentar_Load(object sender, EventArgs e) { System.Collections.Generic.List <Objetos.CParametro> Campos; Campos = DB.DameCamposTabla(TNombreTabla.Text); Objetos.CParametro tabla = new Visor_sql_2015.Objetos.CParametro(); tabla.nombre = "Tabla " + TNombreTabla.Text; tabla.Descripcion = DB.DaMeDescripcionTabla(TNombreTabla.Text); ListaCampos2.Items.Add(tabla); foreach (Objetos.CParametro obj in Campos) { obj.Descripcion = DB.DameDescripcionCampo(TNombreTabla.Text, obj.nombre); obj.Modificado = false; ListaCampos2.Items.Add(obj); } //WindowState = FormWindowState.Maximized; }
private void ListaObjetos_SelectedIndexChanged(object sender, EventArgs e) { DlstCampos.Items.Clear(); if (ListaObjetos.SelectedIndex == -1) { return; } List <Objetos.CParametro> campos; string tabla = (string)ListaObjetos.Items[ListaObjetos.SelectedIndex]; campos = DB.DameCamposTabla(tabla); foreach (Objetos.CParametro obj in campos) { DlstCampos.Items.Add(obj); } }
private void BBuscarTablaOrigen_Click(object sender, EventArgs e) { Formularios.FormBuscarTabla dlg = new Formularios.FormBuscarTabla(DBOrigen, Visor_sql_2015.Controladores_DB.TIPOOBJETO.TABLAX); if (dlg.ShowDialog() == DialogResult.Cancel) { return; } ListaCamposOrigen.Items.Clear(); ListaCamposOrigen2.Items.Clear(); TTablaOrigen.Text = dlg.Tabla; List <Objetos.CParametro> CamposOrigen1 = DBOrigen.DameCamposTabla(dlg.Tabla); foreach (Objetos.CParametro obj in CamposOrigen1) { ListaCamposOrigen.Items.Add(obj); } }
private void BBUscarTablaDestino_Click(object sender, EventArgs e) { Formularios.FormBuscarTabla dlg = new Formularios.FormBuscarTabla(DBDestino, Visor_sql_2015.Controladores_DB.TIPOOBJETO.TABLAX); if (dlg.ShowDialog() == DialogResult.Cancel) { return; } ListaCamposDestino2.Items.Clear(); ListaCamposDestino.Items.Clear(); TTablaDestino.Text = dlg.Tabla; List <Objetos.CParametro> campos; campos = DBDestino.DameCamposTabla(dlg.Tabla); foreach (Objetos.CParametro obj in campos) { ListaCamposDestino.Items.Add(obj); } }
private void CreaHojaTabla(OleDbCommand cmd, string tabla) { string tabla2 = ""; if (tabla.Length > 30) { tabla2 = tabla.Substring(0, 30); } else { tabla2 = tabla; } cmd.CommandText = "create table " + tabla2 + "(Nombre char(10))"; cmd.ExecuteNonQuery(); cmd.CommandText = "UPDATE [" + tabla2 + "$A1:A1] SET F1=" + "\'Nombre del campo \'"; cmd.ExecuteNonQuery(); cmd.CommandText = "UPDATE [" + tabla2 + "$B1:B1] SET F1=" + "\'Tipo \'"; cmd.ExecuteNonQuery(); cmd.CommandText = "UPDATE [" + tabla2 + "$C1:C1] SET F1=" + "\'Longitud\'"; cmd.ExecuteNonQuery(); cmd.CommandText = "UPDATE [" + tabla2 + "$D1:D1] SET F1=" + "\'Acepta nulos \'"; cmd.ExecuteNonQuery(); //me traigo los campos de la tabla System.Collections.Generic.List <Objetos.CParametro> Campos = DB.DameCamposTabla(tabla); int i, n; n = Campos.Count; for (i = 0; i < n; i++) { int pos = i + 2; //agrego los datos de los campos Objetos.CParametro obj = Campos[i]; cmd.CommandText = "UPDATE [" + tabla2 + "$A" + pos.ToString() + ":A" + pos.ToString() + "] SET F1=" + "\'" + obj.nombre + "\'"; cmd.ExecuteNonQuery(); cmd.CommandText = "UPDATE [" + tabla2 + "$B" + pos.ToString() + ":B" + pos.ToString() + "] SET F1=" + "\'" + obj.tipo + " \'"; cmd.ExecuteNonQuery(); cmd.CommandText = "UPDATE [" + tabla2 + "$C" + pos.ToString() + ":C" + pos.ToString() + "] SET F1=" + "\'" + obj.Logitud + " \'"; cmd.ExecuteNonQuery(); cmd.CommandText = "UPDATE [" + tabla2 + "$D" + pos.ToString() + ":D" + pos.ToString() + "] SET F1=" + "\'" + obj.NULOS + " \'"; cmd.ExecuteNonQuery(); } }
public FormTablaX(string Nombre, Controladores_DB.IDataBase db, Controladores_DB.TIPOOBJETO tipo) { DB = db; Tipo = tipo; InitializeComponent(); TNombre.Text = Nombre; Text = Nombre; Lfecha.Text = "Fecha de modificacion: " + DB.DameFechaModificacion(TNombre.Text); Campos = DB.DameCamposTabla(TNombre.Text); MuestraCampos(); if (cTabla1.VerticalScroll == true) { //tiene el scrol porll que asigno el tamaño Width = 308; } else { Width = 287; } }
public override void Inicializate() { string tabla = (string)DameValor("Tabla"); if (Tabla == tabla) { //no nececito actualizar nada return; } Tabla = tabla; //cambio el nombre de la tabla, por lo que actualizo mis listas ListaCampos.Items.Clear(); ListaParametros.Items.Clear(); //me traigo la lista de campos de la tabla List <Objetos.CParametro> campos = DB.DameCamposTabla(Tabla); foreach (Objetos.CParametro obj in campos) { ListaCampos.Items.Add(obj); } }
private void ValidaLLaveForanea(Objetos.CLLaveForanea fk, string tabs) { string s = ""; bool primero = true; string tab2 = tabs + "\t"; string tab3 = tab2 + "\t"; //me traigo los campos y la tabla de la llave List <Objetos.CCampoFK> fks = DB.DameCamposFK(fk.name); List <Objetos.CParametro> campos; AddLine(tabs + "--Genero unbucle para recorrer todos los registros de la tabla"); AddLine(tabs + "declare @" + fk.name + " int"); AddLine(tabs + "select @" + fk.name + " =1"); AddLine(tabs + "while(@" + fk.name + " =1)"); AddLine(tabs + "begin"); AddLine(tab2 + "--vero si existen registros en la tabla " + fks[0].hija); s = "if exists(select * from " + fks[0].hija + " where "; foreach (Objetos.CCampoFK obj in fks) { if (primero == true) { primero = false; } else { s = s + " and "; } s = s + obj.columnahija + "=@" + obj.columnaMaestra; } AddLine(tab2 + s + ")"); AddLine(tab2 + "begin"); //veo si hay que generar una excepcion if (fk.GenerarExcepcion == true) { //como hay que generar una excepcion, ya no valido las tablas hijas //agrego el codigo para generar dicha excepcion if (fk.Mensage != null && fk.Mensage.Trim() != "") { AddLine(tab3 + "RAISERROR(\'" + fk.Mensage + "\', 16, 1)"); } else { AddLine(tab3 + "RAISERROR(\'No se puede eliminar el registro de la tabla " + fks[0].maestra + " porque la tabla " + fks[0].hija + " contiene información\', 16, 1)"); } AddLine(tab3 + "return"); } else { //me traigo el primer registro encontrado con la llave foranea //me traigo los campos de lllave primaria que no esten dentro de la llave foranea campos = DB.DameCamposTabla(fks[0].hija); bool tienecampos = false; s = "select top 1 "; primero = true; foreach (Objetos.CParametro campo in campos) { if (campo.LLavePrimaria == true) { //veo si no esta dentro de los campos de llave foranea bool encontrado = false; foreach (Objetos.CCampoFK objfk in fks) { if (objfk.columnahija == campo.nombre) { encontrado = true; break; } } if (encontrado == false) { tienecampos = true; if (primero == true) { primero = false; } else { s = s + ","; } s = s + "@" + campo.nombre + "=" + campo.nombre; } } } s = s + " from " + fks[0].hija + " where "; primero = true; foreach (Objetos.CCampoFK obj in fks) { if (primero == true) { primero = false; } else { s = s + " and "; } s = s + obj.columnahija + "=@" + obj.columnaMaestra; } if (tienecampos == true) { AddLine(tab3 + s); } //hay que borar en cascada if (fk.Hijas != null) { foreach (Objetos.CLLaveForanea obj in fk.Hijas) { ValidaLLaveForanea(obj, tab3); } } //ahora borro mi registro //ahora borro el olos registros hijos primero = true; s = "delete " + fks[0].hija + " where "; foreach (Objetos.CParametro campo in campos) { if (campo.LLavePrimaria == true) { if (primero == true) { primero = false; } else { s = s + " and "; } s = s + campo.nombre + "=@" + campo.nombre; } } AddLine(tab3 + s); } AddLine(tab2 + "end"); AddLine(tab2 + "else"); AddLine(tab2 + "begin"); AddLine(tab3 + "break"); AddLine(tab2 + "end"); AddLine(tabs + "end"); }
private void AnalizaSiguiente() { if (Lista.Count == 0) { //ya se termino el analisis cBarraProgreso1.Texto = "Exportacion terminada"; TimerDocumentar.Enabled = false; BAnalizar.Enabled = true; return; } Objetos.CSysObject obj = Lista[0]; Lista.RemoveAt(0); cBarraProgreso1.Texto = "Analizando: " + obj.Nombre; cBarraProgreso1.Progreso++; //me traigo la docuemntacion de la tabla //veo si existe en la base de datos destino Objetos.CSysObject ObjDest; List <Objetos.CSysObject> l = DB2.BuscaObjetos(obj.Nombre, obj.TipoObjeto); if (l.Count == 0) { return; } ObjDest = l[0]; if (ObjDest == null) { return; } if (obj.Nombre.ToLower().Trim() != ObjDest.Nombre.ToLower().Trim()) { return; } //aplico la docuemntacion string DescTabla = DB.DaMeDescripcionTabla(obj.Nombre); bool documentada = false; if (DescTabla.Trim() != "") { documentada = true; DB2.GusrdaDescripcionTabla(ObjDest.Nombre, DescTabla); } //me traigo los campos de la tabla System.Collections.Generic.List <Objetos.CParametro> Campos; Campos = DB.DameCamposTabla(obj.Nombre); foreach (Objetos.CParametro campo in Campos) { campo.Descripcion = DB.DameDescripcionCampo(obj.Nombre, campo.nombre); if (campo.Descripcion.Trim() != "") { try { DB2.GuardaDescripcionCampo(ObjDest.Nombre, campo.nombre, campo.Descripcion); documentada = true; } catch (System.Exception ex) { TablasDocuemntadas.Items.Add(ex.Message); } } } if (documentada == true) { TablasDocuemntadas.Items.Add(obj.Nombre); } }
private void ComparaTablas(Objetos.CSysObject obj, Objetos.CSysObject obj2) { //compara los campos de una tabla System.Collections.Generic.List <Objetos.CParametro> l1; System.Collections.Generic.List <Objetos.CParametro> l2; l1 = DB.DameCamposTabla(obj.Nombre); l2 = DB2.DameCamposTabla(obj.Nombre); if (l1.Count != l2.Count) { //son diferentes AgregaDiferencia(obj, "La cantidad de campos no coinciden " + l1.Count + "->" + l2.Count, 2); if (l2.Count > l1.Count) { //faltan campos en la tabla origen, asi que a buscarlos foreach (Objetos.CParametro c2 in l2) { bool encontrado = false; foreach (Objetos.CParametro c1 in l1) { if (c1.nombre.ToLower().Trim() != c2.nombre.ToLower().Trim()) { //que se salte al siguiente campo continue; } encontrado = true; } if (encontrado == false) { AgregaDiferencia(obj, "Falta el campo " + c2.nombre + " en la tabla origen", 1); } } } //return; } int n; n = l2.Count; //comparo campo por campo foreach (Objetos.CParametro c1 in l1) { //primero veo si el campo existe en la otra tabla bool encontrado = false; foreach (Objetos.CParametro c2 in l2) { //comparo los campos if (c1.nombre.ToLower().Trim() != c2.nombre.ToLower().Trim()) { //que se salte al siguiente campo continue; } encontrado = true;//lo marco como encontrado if (c1.tipo != c2.tipo) { //son diferentes AgregaDiferencia(obj, "Los tipos del campo " + c1.nombre.Trim() + " no coinciden " + c1.tipo.Trim() + " " + c2.tipo.Trim(), 2); //return; } if (c1.Logitud != c2.Logitud) { //son diferentes AgregaDiferencia(obj, "La longitud del campo " + c1.nombre.Trim() + " no coincide " + c1.Logitud.ToString() + " " + c2.Logitud.ToString(), 2); //return; } if (c1.NULOS.ToLower().Trim() != c2.NULOS.ToLower().Trim()) { //son diferentes AgregaDiferencia(obj, "La propiedad de aceptar nulos no coinciden " + c1.nombre.Trim() + " " + c1.NULOS.Trim() + " " + c2.NULOS.Trim(), 2); //return; } if (c1.collation != c2.collation) { //son diferentes AgregaDiferencia(obj, "La configuración regional de los campos no coincide " + c1.nombre.Trim() + " " + c1.collation.Trim() + " " + c2.collation.Trim(), 2); } //checo su propiedad de identidad Objetos.CIdentity id1, id2; id1 = DB.DameIdentity(obj.Nombre, c1.nombre); id2 = DB2.DameIdentity(obj.Nombre, c2.nombre); if (id1.EsIdentidad != id2.EsIdentidad) { AgregaDiferencia(obj, "La propiedad identity no coinciden " + id1.EsIdentidad.ToString() + " " + id2.EsIdentidad.ToString() + " campo " + c1.nombre, 2); } else if (id1.EsIdentidad == true) { //si son identidad, ahora chehco sus propiedades if (id1.incremento != id2.incremento) { AgregaDiferencia(obj, "En la propiedad identity no coinciden los imcrementos " + id1.incremento.ToString() + " " + id2.incremento.ToString() + " campo " + c1.nombre, 2); } if (id1.inicio != id2.inicio) { AgregaDiferencia(obj, "En la propiedad identity no coinciden los inicios " + id1.inicio.ToString() + " " + id2.inicio.ToString() + " campo " + c1.nombre, 2); } } //veo si es un campo que tiene valores por default Objetos.CDefault df1, df2; df1 = DB.DameDefault(obj.Nombre, c1.nombre); df2 = DB.DameDefault(obj.Nombre, c2.nombre); if (df1.EsDeafult != df2.EsDeafult) { AgregaDiferencia(obj, "En el campo " + c1.nombre + " la propiedad default no coinciden " + df1.EsDeafult.ToString() + ", " + df2.EsDeafult.ToString(), 2); } else { if (df1.Valor != df1.Valor) { AgregaDiferencia(obj, "En el campo " + c1.nombre + " la propiedad default no coinciden " + df1.Valor + ", " + df2.Valor, 2); } } } if (encontrado == false) { //no se encontro en la tabla AgregaDiferencia(obj, "El campo " + c1.nombre.Trim() + " no existe en la tabla destino ", 1); } } //ahora reviso las claves primarias l1 = DB.DameLLavesPrimarias(obj.Nombre); l2 = DB2.DameLLavesPrimarias(obj2.Nombre); if (l1.Count != l2.Count) { //son diferentes AgregaDiferencia(obj, "No coinciden la cantidad de campos de llaves primarias", 2); return; } }