private void _InsertDomains(TreeListNode tlnParent, string identParentDomain) { ISqlFormatter isql = clsMain.Instance.CurrentConnection.Connection.SqlFormatter; try { Cursor.Current = Cursors.WaitCursor; // create the collection IColDbObject dbcolDomains = clsMain.Instance.CurrentConnection.Connection.CreateCol("SDLDomain"); // assign the where-clause if (String.IsNullOrEmpty(identParentDomain)) { dbcolDomains.Prototype.WhereClause = isql.Comparison("UID_SDLDomainParent", "", ValType.String); } else { dbcolDomains.Prototype.WhereClause = isql.FkComparison("UID_SDLDomainParent", "UID_SDLDomain", "SDLDomain", isql.Comparison("Ident_Domain", identParentDomain, ValType.String)); } // appand the userdefined filter if (clsMain.Instance.DomainFilter.Length > 0) { dbcolDomains.Prototype.WhereClause = "(" + dbcolDomains.Prototype.WhereClause + ") and (" + clsMain.Instance.DomainFilter + ")"; } // mark as DisplayColumn dbcolDomains.Prototype["Ident_Domain"].IsDisplayItem = true; // load the collection dbcolDomains.Load(); //now do for each domain foreach (IColElem colElem in dbcolDomains) { // create a doamin-node TreeListNode tlnDomain = tlnParent.Nodes.Add(colElem.Display, 1); tlnDomain.Tag = new NodeData(NodeType.Domain, colElem.GetValue("Ident_Domain"), ""); // insert static subitems of domain _PrepareDomainNode(tlnDomain); // insert all childdomains _InsertDomains(tlnDomain, colElem.Display); } } catch (Exception ex) { ExceptionDialog.Show(this.ParentForm, ex); } finally { Cursor.Current = Cursors.Default; } }