void SqlObjectTree::Open(int node) { const Item& item = ValueTo<Item>(schema[node]); switch(item.type) { case OBJ_SCHEMA: OpenSchema(node); break; case OBJ_TABLES: OpenTables(node, item); break; case OBJ_VIEWS: OpenViews(node, item); break; case OBJ_SEQUENCES: OpenSequences(node, item); break; case OBJ_TABLE_COLUMNS: OpenTableColumns(node, item); break; } }
bool TDBTBM::OpenDB(PGLOBAL g) { if (trace) htrc("TBM OpenDB: tdbp=%p tdb=R%d use=%d key=%p mode=%d\n", this, Tdb_No, Use, To_Key_Col, Mode); if (Use == USE_OPEN) { /*******************************************************************/ /* Table already open, replace it at its beginning. */ /*******************************************************************/ ResetDB(); return (Tdbp) ? Tdbp->OpenDB(g) : false; // Re-open fist table } // endif use #if 0 /*********************************************************************/ /* When GetMaxsize was called, To_CondFil was not set yet. */ /*********************************************************************/ if (To_CondFil && Tablist) { Tablist = NULL; Nbc = 0; } // endif To_CondFil #endif // 0 /*********************************************************************/ /* Make the table list. */ /*********************************************************************/ if (/*!Tablist &&*/ InitTableList(g)) return TRUE; /*********************************************************************/ /* Open all remote tables of the list. */ /*********************************************************************/ if (OpenTables(g)) return TRUE; /*********************************************************************/ /* Proceed with local tables. */ /*********************************************************************/ if ((CurTable = Tablist)) { Tdbp = (PTDBASE)CurTable->GetTo_Tdb(); // Tdbp->SetMode(Mode); // Check and initialize the subtable columns for (PCOL cp = Columns; cp; cp = cp->GetNext()) if (cp->GetAmType() == TYPE_AM_TABID) cp->COLBLK::Reset(); else if (((PPRXCOL)cp)->Init(g, NULL) && !Accept) return TRUE; if (trace) htrc("Opening subtable %s\n", Tdbp->GetName()); // Now we can safely open the table if (Tdbp->OpenDB(g)) return TRUE; } // endif *Tablist Use = USE_OPEN; return FALSE; } // end of OpenDB