public static void SetDbBindColumn(IDataBaseObject obj, IResultSet rs, IColumnInfo p, DbBindColumn dbc) { IStoredProcedureInfo sp = obj as IStoredProcedureInfo; if (sp != null) { obj = sp; dbc.SpResultIndex = sp.ResultSets.IndexOf(rs); } switch (rs.Type) { case ResultType.Table: dbc.ColumnOriginType = ColumnOriginType.Table; break; case ResultType.View: dbc.ColumnOriginType = ColumnOriginType.View; break; case ResultType.StoredProcedure: dbc.ColumnOriginType = ColumnOriginType.StoredProcedure; break; } //dbc.ColumnOriginType= dbc.CatalogName = obj.ObjectCatalog; dbc.SchemaName = obj.ObjectSchema; dbc.ObjectName = obj.ObjectName; dbc.ColumnName = p.ColumnName; dbc.LoadColumn(GeneratorController.Catalog); }
public void LoadStoredProcedureNode(TreeNode node, IStoredProcedureInfo obj) { TreeNode[] resultNodes = new TreeNode[obj.ResultSets.Count]; if (obj.ResultSets.Count > 0) { // Add result nodes for (int j = 0; j < obj.ResultSets.Count; j++) { TreeNode rNode = new TreeNode("Result Set " + (j + 1).ToString()); resultNodes[j] = rNode; rNode.Tag = obj.ResultSets[j]; rNode.ImageIndex = (int)TvwIcons.resultset; rNode.SelectedImageIndex = (int)TvwIcons.resultset; if (_showColumns) { AddColumns(rNode, obj.ResultSets[j].Columns); } } } string procName = string.Empty; node.Nodes.Clear(); node.Text = GetObjectName(obj); node.Tag = obj; node.ImageIndex = (int)TvwIcons.other; node.SelectedImageIndex = (int)TvwIcons.other; node.Nodes.AddRange(resultNodes); }
public static void SetDbBindColumn(TreeNode node, IColumnInfo p, DbBindColumn dbc) { //TreeNode node = TreeViewSchema.SelectedNode; IResultSet rs = (IResultSet)node.Tag; IStoredProcedureInfo sp = null; if (node.Parent.Tag != null) { sp = (IStoredProcedureInfo)node.Parent.Tag; } IDataBaseObject obj = null; if (sp != null) { obj = sp; dbc.SpResultIndex = sp.ResultSets.IndexOf(rs); } else { obj = (IDataBaseObject)rs; } switch (rs.Type) { case ResultType.Table: dbc.ColumnOriginType = ColumnOriginType.Table; break; case ResultType.View: dbc.ColumnOriginType = ColumnOriginType.View; break; case ResultType.StoredProcedure: dbc.ColumnOriginType = ColumnOriginType.StoredProcedure; break; } //dbc.ColumnOriginType= dbc.CatalogName = obj.ObjectCatalog; dbc.SchemaName = obj.ObjectSchema; dbc.ObjectName = obj.ObjectName; dbc.ColumnName = p.ColumnName; dbc.LoadColumn(GeneratorController.Catalog); }
public void LoadStoredProcedureNode(TreeNode node, IStoredProcedureInfo obj) { var parameterNodes = new TreeNode[obj.Parameters.Count]; if (obj.Parameters.Count > 0) { // Add parameter nodes for (int j = 0; j < obj.Parameters.Count; j++) { var pNode = new TreeNode(obj.Parameters[j].ParameterName); parameterNodes[j] = pNode; pNode.Tag = obj.Parameters[j]; pNode.ImageIndex = (int)TreeViewIcons.resultset; pNode.SelectedImageIndex = (int)TreeViewIcons.resultset; } } var resultNodes = new TreeNode[obj.ResultSets.Count]; if (obj.ResultSets.Count > 0) { // Add result nodes for (int j = 0; j < obj.ResultSets.Count; j++) { var rNode = new TreeNode("Result Set " + (j + 1)); resultNodes[j] = rNode; rNode.Tag = obj.ResultSets[j]; rNode.ImageIndex = (int)TreeViewIcons.resultset; rNode.SelectedImageIndex = (int)TreeViewIcons.resultset; if (_showColumns) { AddColumns(rNode, obj.ResultSets[j].Columns); } } } //var procName = string.Empty; node.Nodes.Clear(); node.Text = GetObjectName(obj); node.Tag = obj; node.ImageIndex = (int)TreeViewIcons.other; node.SelectedImageIndex = (int)TreeViewIcons.other; node.Nodes.AddRange(parameterNodes); node.Nodes.AddRange(resultNodes); }
internal void LoadColumn(ICatalog catalog) { _catalog = catalog; _resultSet = null; _databaseObject = null; _column = null; string cat = null; if (_catalogName != null) { if (string.Compare(_catalogName, _catalog.CatalogName, true) != 0) { cat = null; //When connecting to a DB with a different name } else { cat = _catalogName; } } try { switch (_columnOriginType) { case ColumnOriginType.Table: ITableInfo tInfo = _catalog.Tables[cat, _schemaName, _objectName]; if (tInfo != null) { _databaseObject = tInfo; _resultSet = tInfo; } break; case ColumnOriginType.View: //_Column = _Catalog.Views[_CatalogName, _SchemaName, _objectName].Columns[_columnName]; IViewInfo vInfo = _catalog.Views[cat, _schemaName, _objectName]; if (vInfo != null) { _databaseObject = vInfo; _resultSet = vInfo; } break; case ColumnOriginType.StoredProcedure: IStoredProcedureInfo pInfo = _catalog.Procedures[cat, _schemaName, _objectName]; if (pInfo != null) { _databaseObject = pInfo; if (pInfo.ResultSets.Count > _spResultSetIndex) { _resultSet = pInfo.ResultSets[_spResultSetIndex]; } } break; case ColumnOriginType.None: break; } } catch (Exception ex) { Console.WriteLine(ex.Message); } if (_resultSet != null) { _column = _resultSet.Columns[_columnName]; } ReloadColumnInfo(); }
public void BuildSchemaTree() { TreeViewSchema.Nodes.Clear(); TreeViewSchema.ImageList = schemaImages; string catalogName = null; string[] cnparts = cn.ToLower().Split(';'); foreach (string cnpart in cnparts) { if (cnpart.Contains("initial catalog=") || cnpart.Contains("database=")) { catalogName = cnpart.Substring(cnpart.IndexOf("=") + 1).Trim(); } } OutputWindow.Current.ClearOutput(); catalog = new SqlCatalog(cn, catalogName); DateTime start; DateTime end; //OutputWindow.Current.AddOutputInfo("Load Tables & Views Start:" + DateTime.Now.ToLongTimeString()); start = DateTime.Now; catalog.LoadStaticObjects(); end = DateTime.Now; //OutputWindow.Current.AddOutputInfo("Load Tables & Views End:" + end.ToLongTimeString()); OutputWindow.Current.AddOutputInfo(string.Format("Loaded {0} tables and {1} views in {2:0.00} seconds...", catalog.Tables.Count.ToString(), catalog.Views.Count.ToString(), end.Subtract(start).TotalSeconds)); //OutputWindow.Current.AddOutputInfo("Load Procedures Start:" + DateTime.Now.ToLongTimeString()); start = DateTime.Now; catalog.LoadProcedures(); end = DateTime.Now; //OutputWindow.Current.AddOutputInfo("Load Procedures End:" + end.ToLongTimeString()); OutputWindow.Current.AddOutputInfo(string.Format("Found {0} sprocs in {1:0.00} seconds...", catalog.Procedures.Count.ToString(), end.Subtract(start).TotalSeconds), 2); SprocName[] requiredSprocs = GetRequiredProcedureList(); if (requiredSprocs.Length > 0) { OutputWindow.Current.AddOutputInfo("Loading required procedures:"); } foreach (SprocName sp in requiredSprocs) { StringBuilder sb = new StringBuilder(); if (!string.IsNullOrEmpty(sp.Schema)) { sb.Append(sp.Schema).Append("."); } sb.Append(sp.Name); sb.Append(": "); try { IStoredProcedureInfo sproc = catalog.Procedures[null, sp.Schema == "" ? null : sp.Schema, sp.Name]; if (sproc != null) { start = DateTime.Now; sproc.Reload(true); end = DateTime.Now; sb.AppendFormat("Loaded in {0:0.00} seconds...", end.Subtract(start).TotalSeconds); } else { sb.Append("Not Found!"); } } catch (Exception ex) { sb.AppendLine(ex.Message); sb.AppendLine("Stack Trace:"); sb.AppendLine(); sb.AppendLine(ex.StackTrace); sb.AppendLine(); } OutputWindow.Current.AddOutputInfo(sb.ToString()); } GeneratorController.Catalog = catalog; if (!String.IsNullOrEmpty(catalog.CatalogName)) { paneDbName.Caption = catalog.CatalogName; } else { paneDbName.Caption = "Database Schema"; } if (_currentUnit != null) { _currentUnit.ConnectionString = cn; } dbTreeView1.BuildSchemaTree(catalog); foreach (CslaObjectInfo info in _currentUnit.CslaObjects) { if (catalog != null) { info.LoadColumnInfo(catalog); } } }