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
 //实现UpdateScan接口
 public void setVal(string fldname, Constant val)
 {
     if (sch.type(fldname) == Schema.INTEGER)
     {
         rf.setInt(fldname, (int)val.asCsharpVal());
     }
     else
     {
         rf.setString(fldname, (string)val.asCsharpVal());
     }
 }