Ejemplo n.º 1
0
        public void createView(string vname, string vdef, Transaction tx)
        {//创建视图,在内存中创建RecordFile读取类往里面写信息
            TableInfo  ti = tblMgr.getTableInfo("viewcat", tx);
            RecordFile rf = new RecordFile(ti, tx);

            rf.insert();
            rf.setString("viewname", vname);
            rf.setString("viewdef", vdef);
            rf.close();
        }
Ejemplo n.º 2
0
 private void refreshStatistics(Transaction tx)
 {
     lock (threadLock)
     {
         tablestats = new Dictionary <string, StatInfo>();
         numcalls   = 0;
         TableInfo  tcatmd   = tblMgr.getTableInfo("tblcat", tx); //获取tblcat表中的信息
         RecordFile tcatfile = new RecordFile(tcatmd, tx);        //利用这些信息新建一个RecordFile读取类
         while (tcatfile.next())
         {                                                        //获取每一张表的字段信息,计算出块数和记录数,添加到统计信息管理器中去
             string    tblname = tcatfile.getString("tblname");
             TableInfo md      = tblMgr.getTableInfo(tblname, tx);
             StatInfo  si      = calcTableStats(md, tx);
             tablestats.Add(tblname, si);
         }
         tcatfile.close();
     }
 }
Ejemplo n.º 3
0
 public IndexMgr(bool isnew, TableMgr tblMgr, Transaction tx)
 {//构造一个索引管理器,这个构造函数在系统启动时被调用,若数据库是新建的,那么idxcat表就会被创建
     if (isnew)
     {
         Schema sch = new Schema();
         sch.addStringField("indexname", TableMgr.MAX_NAME);
         sch.addStringField("tablename", TableMgr.MAX_NAME);
         sch.addStringField("fieldname", TableMgr.MAX_NAME);
         tblMgr.createTable("idxcat", sch, tx);
     }
     ti = tblMgr.getTableInfo("idxcat", tx);
 }
Ejemplo n.º 4
0
 public TableInfo getTableInfo(string tblname, Transaction tx)
 {//获取指定表名称的表信息(一条记录的长度,字段名称,字段类型,字段长度,每个字段的偏移量)
     return(tblmgr.getTableInfo(tblname, tx));
 }