/// <summary> /// Carrega os campos do objeto alvo /// </summary> /// <param name="nomeObjeto">nome do objeto</param> /// <param name="tipo">tipo do objeto (tabela,view,procedure)</param> private void CarregaCamposObjeto(string nomeObjeto, EDatabaseObjectType tipo) { try { if (ObjetosSelecionado == null) { var colunasObjeto = new List<ColumnInfo>(); switch (tipo) { case EDatabaseObjectType.Tabela: colunasObjeto = Gerador.TableMapping.ListAllFieldsFromTable(BancoSelecionado, nomeObjeto, DadosLogin); break; case EDatabaseObjectType.View: colunasObjeto = Gerador.ViewMapping.ListAllFieldsFromViews(BancoSelecionado, nomeObjeto, DadosLogin); break; case EDatabaseObjectType.Procedure: Parametros = Gerador.StoredProcedureMapping.ListAllStoredProceduresParameters(BancoSelecionado, DadosLogin, nomeObjeto); if (Parametros.Count > 0) { var frm = new frmParametros {Parametros = Parametros}; if (frm.ShowDialog(this) == DialogResult.Yes) { Parametros = frm.Parametros; } frm.Dispose(); } if ( MessageBox.Show( string.Format( "Algumas procedures podem desencadear uma sequencia de insert's, update's e delete's.\nExecute apenas procedures que você conheça o funcionamento e que retornem dados.\nDeseja executar a procedure '{0}' ?", nomeObjeto), "ATENÇÃO", MessageBoxButtons.YesNo, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2) == DialogResult.Yes) { colunasObjeto = Gerador.StoredProcedureMapping.ListAllFieldsFromStoredProcedure(BancoSelecionado, nomeObjeto, Parametros, DadosLogin); } break; case EDatabaseObjectType.Query: colunasObjeto = Colunas; break; default: throw new ArgumentOutOfRangeException("tipo", "Tipo inválido"); } ObjetosSelecionado = tipo == EDatabaseObjectType.Query ? new DatabaseObjectInfo(nomeObjeto, tipo, Parametros, Consulta) {Columns = colunasObjeto} : new DatabaseObjectInfo(nomeObjeto, tipo, Parametros) {Columns = colunasObjeto}; } GridView.CarregaGridViewColunas(gvColunasObjeto, ObjetosSelecionado, IlObjetos); } catch (Exception ex) { MessageBox.Show(string.Format("Erro:\n{0}", ex.Message), ex.Source, MessageBoxButtons.OK, MessageBoxIcon.Error); } }
private void lvObjetosBanco_ItemCheck(object sender, ItemCheckEventArgs e) { if (lvObjetosBanco.Items[e.Index].Group == lvObjetosBanco.Groups["procedure"] && e.NewValue == CheckState.Checked) { var nomesTiposObjeto = new DatabaseObjectInfo(lvObjetosBanco.Items[e.Index].Text, lvObjetosBanco.Items[e.Index].SubItems[4].Text.ConvertToEnum<EDatabaseObjectType>(), new List<StoredProcedureParameter>()); Parameters = Gerador.StoredProcedureMapping.ListAllStoredProceduresParameters(BancoSelecionado, User, lvObjetosBanco.Items[e.Index].Text); if (Parameters.Count > 0) { var frm = new frmParametros { Parametros = Parameters }; if (frm.ShowDialog(this) == DialogResult.Yes) { nomesTiposObjeto.AjustaParametros(frm.Parametros); } else { MessageBox.Show("Não é possivel carregar os dadso da StoredProcedure sem o preenchimento dos parametros", "", MessageBoxButtons.OK, MessageBoxIcon.Information); e.NewValue = CheckState.Unchecked; return; } frm.Dispose(); } _imgObjetosMapeados.Add(new KeyValuePair<string, Image>(lvObjetosBanco.Items[e.Index].Text, ilIcones.Images["cheked"])); nomesTiposObjeto.Columns = CarregaCamposObjeto(nomesTiposObjeto.Name, nomesTiposObjeto.DatabaseObjectType, true); _selectedObjects.Add(nomesTiposObjeto); } if (e.NewValue == CheckState.Unchecked) { _selectedObjects = _selectedObjects.Where(o => o.Name != lvObjetosBanco.Items[e.Index].Text).ToList(); _imgObjetosMapeados = _imgObjetosMapeados.Where(o => o.Key != lvObjetosBanco.Items[e.Index].Text).ToList(); } }