Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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);
        }
Beispiel #4
0
        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);
        }
Beispiel #5
0
        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();
        }
Beispiel #6
0
        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);
                }
            }
        }