Beispiel #1
0
        public void createTable(string tblname, Schema sch, Transaction tx)
        {//创建一个新表,有指定的表名称、模式信息
            TableInfo ti = new TableInfo(tblname, sch);
            //往tblcat表中插入一条记录
            RecordFile tcatfile = new RecordFile(tcatInfo, tx);

            tcatfile.insert();
            tcatfile.setString("tblname", tblname);
            tcatfile.setInt("reclength", ti.recordLength());
            tcatfile.close();

            //往fldcat表中插入记录:每个字段的信息
            RecordFile fcatfile = new RecordFile(fcatInfo, tx);

            foreach (string fldname in sch.fields())
            {
                fcatfile.insert();
                fcatfile.setString("tblname", tblname);
                fcatfile.setString("fldname", fldname);
                fcatfile.setInt("type", sch.type(fldname));
                fcatfile.setInt("length", sch.length(fldname));
                fcatfile.setInt("offset", ti.offset(fldname));
            }
            fcatfile.close();
        }
Beispiel #2
0
        public void createIndex(string idxname, string tblname, string fldname, Transaction tx)
        {//在指定表、指定字段上创造一个指定名称的索引
            RecordFile rf = new RecordFile(ti, tx);

            rf.insert();
            rf.setString("indexname", idxname);
            rf.setString("tablename", tblname);
            rf.setString("fieldname", fldname);
            rf.close();
        }
Beispiel #3
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();
        }
Beispiel #4
0
 public void insert()
 {
     rf.insert();
 }