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(); }
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(); }
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(); }
public void insert() { rf.insert(); }